/* Technocrete template v1.2.0 */
:root {
  --tc-primary: #00aef0;
  --tc-navy: #003b87;
  --tc-text: #35353a;
  --tc-muted: #68727d;
  --tc-surface: #fff;
  --tc-soft: #f5f7f9;
  --tc-border: #e2e8ee;
  --tc-container: 1280px;
  --tc-shadow: 0 14px 40px rgba(18, 43, 64, .09);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--tc-text); background: var(--tc-surface); font-family: Inter, "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.65; }
a { color: var(--tc-primary); }
img { max-width: 100%; height: auto; }
.tc-container { width: min(var(--tc-container), calc(100% - 40px)); margin-inline: auto; }
.tc-skip-link { position: fixed; z-index: 10000; top: 8px; left: 8px; transform: translateY(-160%); background: #fff; color: #111; padding: 9px 14px; }
.tc-skip-link:focus { transform: translateY(0); }
.tc-topbar { background: var(--tc-primary); color: #fff; font-size: 14px; }
.tc-topbar a { color: #fff; }
.tc-topbar-inner { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.tc-header { position: relative; z-index: 900; background: rgba(255,255,255,.98); border-bottom: 1px solid var(--tc-border); transition: box-shadow .2s ease, min-height .2s ease; }
.has-sticky-header .tc-header { position: sticky; top: 0; }
.tc-header.is-scrolled { box-shadow: var(--tc-shadow); }
.tc-header-inner { min-height: 100px; display: grid; grid-template-columns: minmax(190px, 1fr) auto minmax(0, 2.3fr); align-items: center; gap: 24px; }
.tc-brand img { display: block; width: auto; max-height: 72px; }
.tc-parent-brand img { display: block; width: auto; max-height: 66px; }
.tc-navigation ul { list-style: none; margin: 0; padding: 0; }
.tc-navigation > div > ul, .tc-navigation > ul { display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.tc-navigation li { position: relative; }
.tc-navigation a { display: flex; min-height: 44px; align-items: center; padding: 0 14px; color: var(--tc-text); text-decoration: none; font-weight: 650; }
.tc-navigation .current > a, .tc-navigation .active > a, .tc-navigation a:hover { color: var(--tc-primary); }
.tc-navigation li ul { position: absolute; top: 100%; left: 0; min-width: 250px; padding: 9px; background: #fff; border: 1px solid var(--tc-border); box-shadow: var(--tc-shadow); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .18s ease; }
.tc-navigation li:hover > ul, .tc-navigation li:focus-within > ul { opacity: 1; visibility: visible; transform: translateY(0); }
.tc-navigation li ul a { min-height: 40px; }
.tc-menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--tc-border); background: #fff; align-content: center; justify-items: center; gap: 5px; }
.tc-menu-toggle span:not(.visually-hidden) { display: block; width: 22px; height: 2px; background: var(--tc-navy); }
.tc-hero { overflow: hidden; }
.tc-title { color: #fff; background: linear-gradient(120deg, var(--tc-navy), var(--tc-primary)); }
.tc-breadcrumbs { padding-block: 18px; }
.tc-main { min-height: 55vh; }
.tc-main-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 34px; padding-block: 48px 70px; }
.has-left-sidebar .tc-main-grid { grid-template-columns: 280px minmax(0, 1fr); }
.has-right-sidebar .tc-main-grid { grid-template-columns: minmax(0, 1fr) 280px; }
.has-left-sidebar.has-right-sidebar .tc-main-grid { grid-template-columns: 260px minmax(0, 1fr) 260px; }
.tc-component { min-width: 0; }

/* Full-bleed Alfa Builder pages
   The page section owns the background across the viewport, while its
   .tb-container remains constrained by the template container setting. */
.tc-main-grid-full {
  display: block;
  width: 100%;
  max-width: none;
  gap: 0;
  padding: 0;
}
.tc-main-grid-full > .tc-component,
.tc-main-grid-full .com-tragbuilder,
.tc-main-grid-full .com-tragbuilder-page {
  width: 100%;
  max-width: none;
  min-width: 0;
}
.tc-main-grid-full .com-tragbuilder-page {
  overflow: clip;
}
.tc-main-grid-full .tb-section {
  width: 100%;
  max-width: none;
}
.tc-main-grid-full .tb-container {
  width: min(var(--tc-container), calc(100% - 40px));
  margin-inline: auto;
}
.tc-main-grid-full .tb-container-wide {
  width: min(1500px, calc(100% - 40px));
}
.tc-main-grid-full #system-message-container {
  width: min(var(--tc-container), calc(100% - 40px));
  margin-inline: auto;
}

.tc-sidebar { min-width: 0; }
.tc-module-card { margin-bottom: 24px; }
.tc-module-title { margin: 0 0 15px; color: var(--tc-navy); font-size: 1.2rem; }
.tc-bottom { background: var(--tc-soft); border-top: 1px solid var(--tc-border); padding-block: 58px; }
.tc-bottom-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px; }
.tc-footer { background: var(--tc-navy); color: rgba(255,255,255,.78); }
.tc-footer a { color: #fff; }
.tc-footer-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.tc-back-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 800; width: 44px; height: 44px; border: 0; background: var(--tc-primary); color: #fff; cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(12px); transition: .2s ease; }
.tc-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.tc-button { display: inline-flex; min-height: 44px; align-items: center; padding: 0 22px; color: #fff; background: var(--tc-primary); text-decoration: none; font-weight: 700; }
.tc-error-page { min-height: 100vh; display: grid; place-items: center; background: var(--tc-soft); padding: 24px; }
.tc-error-card { width: min(650px, 100%); text-align: center; background: #fff; box-shadow: var(--tc-shadow); padding: 50px; }
.tc-error-code { color: var(--tc-primary); font-size: clamp(4rem, 13vw, 8rem); font-weight: 800; line-height: 1; }
.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; }
html[dir="rtl"] .tc-navigation li ul { left: auto; right: 0; }
html[dir="rtl"] .tc-back-to-top { right: auto; left: 22px; }
@media (max-width: 1180px) {
  .tc-header-inner { grid-template-columns: minmax(180px, 1fr) auto auto; min-height: 86px; }
  .tc-menu-toggle { display: grid; }
  .tc-navigation { position: absolute; top: 100%; left: 0; right: 0; max-height: 0; overflow: auto; background: #fff; border-bottom: 1px solid var(--tc-border); box-shadow: var(--tc-shadow); transition: max-height .25s ease; }
  .tc-navigation.is-open { max-height: calc(100vh - 90px); }
  .tc-navigation > div > ul, .tc-navigation > ul { display: block; padding: 14px 20px 24px; }
  .tc-navigation li ul { position: static; min-width: 0; padding: 0 0 0 18px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .tc-navigation a { justify-content: flex-start; }
  .tc-bottom-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .has-left-sidebar .tc-main-grid, .has-right-sidebar .tc-main-grid, .has-left-sidebar.has-right-sidebar .tc-main-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .tc-container { width: min(100% - 28px, var(--tc-container)); }
  .tc-main-grid-full .tb-container,
  .tc-main-grid-full .tb-container-wide,
  .tc-main-grid-full #system-message-container { width: min(100% - 28px, var(--tc-container)); }
  .tc-topbar-inner, .tc-footer-inner { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 10px; }
  .tc-header-inner { grid-template-columns: minmax(150px, 1fr) auto; gap: 12px; }
  .tc-parent-brand { display: none; }
  .tc-bottom-grid { grid-template-columns: 1fr; }
  .tc-main-grid { padding-block: 32px 50px; }
}


/* Joomla core output baseline */
button, input, select, textarea { font: inherit; }
button, [type="button"], [type="submit"] { cursor: pointer; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 42px; padding: .55rem 1rem; border: 1px solid transparent; border-radius: 4px; background: var(--tc-primary); color: #fff; text-decoration: none; font-weight: 700; line-height: 1.2; }
.btn:hover, .btn:focus { filter: brightness(.94); color: #fff; }
.btn-secondary { background: #eef2f5; border-color: var(--tc-border); color: var(--tc-text); }
.btn-secondary:hover, .btn-secondary:focus { color: var(--tc-text); }
.form-control, .form-select, input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="url"], input[type="tel"], textarea, select { width: 100%; min-height: 42px; padding: .55rem .75rem; border: 1px solid #cbd5df; border-radius: 4px; background: #fff; color: var(--tc-text); }
textarea { min-height: 120px; }
.form-control:focus, .form-select:focus, input:focus, textarea:focus, select:focus { outline: 2px solid color-mix(in srgb, var(--tc-primary) 24%, transparent); border-color: var(--tc-primary); }
.input-group { display: flex; width: 100%; align-items: stretch; }
.input-group > .form-control, .input-group > input { min-width: 0; flex: 1 1 auto; }
.input-group > .btn { border-radius: 0 4px 4px 0; }
.form-check { display: flex; align-items: center; gap: .5rem; margin-block: .65rem; }
.form-check-input { width: 1rem; height: 1rem; margin: 0; }
.control-group, .mb-3 { margin-bottom: 1rem; }
label { display: inline-block; margin-bottom: .35rem; font-weight: 600; }
.mod-login { max-width: 420px; }
.mod-login .input-group { margin-bottom: .8rem; }
.breadcrumb, .breadcrumb ul, ol.breadcrumb { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; color: var(--tc-muted); }
.breadcrumb-item + .breadcrumb-item::before { content: "/"; margin-inline-end: .4rem; color: #9aa5af; }
.tc-sidebar .moduletable, .tc-sidebar .card, .tc-module-card { padding: 22px; border: 1px solid var(--tc-border); background: #fff; box-shadow: 0 8px 24px rgba(18,43,64,.05); }
.tc-sidebar .moduletable + .moduletable, .tc-sidebar .card + .card { margin-top: 22px; }
.tc-sidebar h3, .tc-sidebar .card-header { margin-top: 0; color: var(--tc-navy); }
.tc-sidebar .mod-menu { list-style: none; margin: 0; padding: 0; }
.tc-sidebar .mod-menu a { display: block; padding: .55rem 0; text-decoration: none; border-bottom: 1px solid var(--tc-border); }
.alert { margin-bottom: 1rem; padding: 1rem 1.1rem; border: 1px solid var(--tc-border); border-radius: 4px; background: var(--tc-soft); }
.icon-eye, .icon-eye-slash, [class^="icon-"], [class*=" icon-"] { font-size: 1em; }

/* Joomla 6 module details */
.mod-login__image,
.mod-login img[alt=""] {
  display: block;
  width: 72px;
  max-width: 72px;
  margin: 0 0 1rem;
}
.mod-login .btn-primary,
.mod-login button[type="submit"] {
  width: auto;
  margin-top: .5rem;
}
.tc-component h1:first-child { margin-top: 0; }

/* =========================================================
   Signature product experience — v1.4.0
   ========================================================= */
.has-product-detail .tc-main-grid-full,
.has-product-detail .tc-component{overflow:visible}
.tc-product-detail{
  --tc-product-shell:min(1380px,calc(100% - 48px));
  overflow:clip;
  color:var(--tc-text);
  background:#fff;
}
.tc-product-detail h1,
.tc-product-detail h2,
.tc-product-detail h3{color:var(--tc-navy)}
.tc-product-shell,
.tc-product-body{
  width:var(--tc-product-shell);
  margin-inline:auto;
}
.tc-product-hero-band{
  position:relative;
  min-height:760px;
  padding:clamp(64px,7vw,108px) 0 clamp(118px,10vw,154px);
  background:
    linear-gradient(180deg,#eef4f7 0%,#f8fbfc 78%,#fff 100%);
  overflow:hidden;
}
.tc-product-hero-geometry{
  position:absolute;
  inset:0 auto 0 0;
  width:min(66vw,1050px);
  background:
    radial-gradient(circle at 72% 14%,rgba(0,174,240,.28),transparent 28%),
    linear-gradient(135deg,#00265b 0%,#003b87 48%,#0061aa 100%);
  clip-path:polygon(0 0,86% 0,100% 100%,0 100%);
}
.tc-product-hero-geometry::before,
.tc-product-hero-geometry::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
}
.tc-product-hero-geometry::before{
  top:-260px;
  left:-250px;
  width:680px;
  height:680px;
  box-shadow:0 0 0 100px rgba(255,255,255,.025),0 0 0 200px rgba(255,255,255,.014);
}
.tc-product-hero-geometry::after{
  right:-120px;
  bottom:-250px;
  width:550px;
  height:550px;
}
.tc-product-hero{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(390px,.72fr);
  align-items:center;
  gap:0;
}
.tc-product-stage-wrap{position:relative;z-index:1;min-width:0}
.tc-product-stage{
  position:relative;
  min-height:clamp(520px,48vw,680px);
  margin-right:-34px;
  border-radius:22px;
  background:#001c44;
  box-shadow:0 38px 96px rgba(0,27,67,.32);
  overflow:visible;
}
.tc-product-stage::after{
  content:"";
  position:absolute;
  inset:16px;
  z-index:3;
  border:1px solid rgba(255,255,255,.15);
  border-radius:14px;
  pointer-events:none;
}
.tc-product-stage-glow{
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:22px;
  background:
    linear-gradient(90deg,rgba(0,25,61,.2),transparent 32%,transparent 68%,rgba(0,25,61,.24)),
    linear-gradient(180deg,rgba(0,25,61,.06),rgba(0,25,61,.34));
  pointer-events:none;
}
.tc-product-stage-backdrop{
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:22px;
  background-position:center;
  background-size:cover;
  filter:blur(24px) saturate(.78);
  transform:scale(1.12);
  opacity:.72;
}
.tc-product-stage-main{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  padding:clamp(42px,5vw,78px);
  border-radius:22px;
  overflow:hidden;
  text-decoration:none;
}
.tc-product-stage-main img{
  display:block;
  width:100%;
  max-width:980px;
  height:100%;
  max-height:570px;
  object-fit:contain;
  filter:drop-shadow(0 22px 34px rgba(0,0,0,.28));
  transition:transform .4s ease,filter .4s ease;
}
.tc-product-stage-main:hover img,
.tc-product-stage-main:focus-visible img{
  transform:scale(1.025);
  filter:drop-shadow(0 26px 42px rgba(0,0,0,.34));
}
.tc-product-stage-action{
  position:absolute;
  right:28px;
  bottom:28px;
  display:inline-flex;
  min-height:45px;
  align-items:center;
  gap:9px;
  padding:10px 15px;
  border-radius:999px;
  color:var(--tc-navy);
  background:rgba(255,255,255,.95);
  box-shadow:0 12px 28px rgba(0,18,48,.2);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.tc-product-stage-action>span{
  display:grid;
  width:25px;
  height:25px;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--tc-primary);
  font-size:1rem;
}
.tc-product-stage-label{
  position:absolute;
  z-index:5;
  top:28px;
  left:30px;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:12px 15px;
  border-left:3px solid var(--tc-primary);
  color:#fff;
  background:rgba(0,26,65,.58);
  backdrop-filter:blur(10px);
}
.tc-product-stage-label span{
  color:rgba(255,255,255,.55);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tc-product-stage-label strong{font-size:.84rem}
.tc-product-stage-preview{
  position:absolute;
  z-index:6;
  display:flex;
  width:190px;
  min-height:130px;
  flex-direction:column;
  padding:12px;
  border:1px solid rgba(255,255,255,.6);
  border-radius:14px;
  color:var(--tc-navy);
  background:rgba(255,255,255,.96);
  box-shadow:0 20px 46px rgba(0,26,64,.24);
  text-decoration:none;
  transition:transform .22s ease,box-shadow .22s ease;
}
.tc-product-stage-preview:hover,
.tc-product-stage-preview:focus-visible{
  transform:translateY(-5px);
  box-shadow:0 28px 58px rgba(0,26,64,.3);
}
.tc-product-stage-preview-colour{right:-36px;top:34px}
.tc-product-stage-preview-sketch{left:-34px;bottom:34px}
.tc-product-stage-preview-copy{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}
.tc-product-stage-preview-copy small{
  color:var(--tc-primary);
  font-size:.68rem;
  font-weight:900;
}
.tc-product-stage-preview-copy strong{
  font-size:.74rem;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.tc-product-stage-preview img{
  width:100%;
  height:88px;
  border-radius:8px;
  object-fit:contain;
  background:#f0f5f7;
}
.tc-product-stage-empty{
  display:grid;
  place-items:center;
  overflow:hidden;
}
.tc-product-image-placeholder{
  color:rgba(255,255,255,.12);
  font-size:10rem;
  font-weight:900;
}
.tc-product-summary-card{
  position:relative;
  z-index:8;
  margin-left:-48px;
  padding:clamp(38px,4vw,62px);
  border:1px solid rgba(0,59,135,.08);
  border-radius:20px;
  background:rgba(255,255,255,.985);
  box-shadow:0 34px 80px rgba(0,40,92,.18);
}
.tc-product-summary-card::before{
  content:"";
  position:absolute;
  top:0;
  left:clamp(38px,4vw,62px);
  width:74px;
  height:4px;
  background:var(--tc-primary);
}
.tc-product-context{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:23px;
  color:#96a2ae;
  font-size:.78rem;
  font-weight:750;
}
.tc-product-context a{color:#657486;text-decoration:none}
.tc-product-context a:hover{color:var(--tc-primary)}
.tc-product-kicker,
.tc-section-heading>span,
.tc-product-datasheet-copy>span,
.tc-product-support-card>span,
.tc-product-enquiry>div>span{
  display:block;
  margin-bottom:11px;
  color:var(--tc-primary);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.tc-product-summary-card h1{
  max-width:670px;
  margin:0 0 23px;
  color:var(--tc-navy);
  font-size:clamp(2.65rem,4.15vw,4.7rem);
  line-height:1.01;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.tc-product-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 18px;
  margin-bottom:25px;
}
.tc-product-status{
  display:inline-flex;
  min-height:31px;
  align-items:center;
  padding:5px 11px;
  border-radius:999px;
  color:#08773b;
  border:1px solid rgba(8,119,59,.17);
  background:#e8f8ef;
  font-size:.72rem;
  font-weight:880;
}
.tc-product-status-stopped{color:#9a6400;background:#fff5d9;border-color:#ffe1a0}
.tc-product-status-legacy{color:#5b6571;background:#eef1f4;border-color:#dde2e7}
.tc-product-code{
  display:flex;
  gap:7px;
  color:#6e7b88;
  font-size:.84rem;
}
.tc-product-code strong{color:var(--tc-navy)}
.tc-product-intro{
  max-width:650px;
  margin:0 0 24px;
  color:#536477;
  font-size:1rem;
  line-height:1.78;
}
.tc-product-intro>:first-child{margin-top:0}
.tc-product-intro>:last-child{margin-bottom:0}
.tc-product-note{
  margin:0 0 25px;
  padding:15px 17px;
  border-left:3px solid var(--tc-primary);
  border-radius:0 8px 8px 0;
  color:#56677a;
  background:#eef8fc;
}
.tc-product-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:11px;
  margin-top:29px;
}
.tc-product-button{
  display:inline-flex;
  min-height:50px;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border:1px solid transparent;
  border-radius:6px;
  text-decoration:none;
  font-size:.83rem;
  font-weight:880;
  transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease;
}
.tc-product-button:hover{transform:translateY(-2px)}
.tc-product-button-primary{
  color:#fff;
  background:var(--tc-primary);
  box-shadow:0 14px 30px rgba(0,174,240,.2);
}
.tc-product-button-primary:hover{color:#fff;background:#008fcd}
.tc-product-button-dark{color:#fff;background:var(--tc-navy)}
.tc-product-button-dark:hover{color:#fff;background:#002c69}
.tc-product-button-light{color:var(--tc-navy);background:#fff}
.tc-product-button-light:hover{color:#fff;background:var(--tc-primary)}
.tc-product-summary-foot{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:31px;
  padding-top:23px;
  border-top:1px solid var(--tc-border);
}
.tc-product-summary-foot>span{
  display:grid;
  flex:0 0 43px;
  width:43px;
  height:43px;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--tc-navy);
  font-size:.7rem;
  font-weight:900;
}
.tc-product-summary-foot p{
  margin:0;
  color:#7a8794;
  font-size:.78rem;
  line-height:1.45;
}
.tc-product-summary-foot strong{
  display:block;
  color:var(--tc-navy);
  font-size:.82rem;
}
.tc-product-facts-wrap{
  position:relative;
  z-index:12;
  margin-top:-63px;
}
.tc-product-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--tc-border);
  border-radius:14px;
  background:#fff;
  box-shadow:0 20px 52px rgba(18,43,64,.11);
  overflow:hidden;
}
.tc-product-facts>div{
  min-width:0;
  padding:24px 27px;
  border-right:1px solid var(--tc-border);
}
.tc-product-facts>div:last-child{border-right:0}
.tc-product-facts span{
  display:block;
  margin-bottom:4px;
  color:#8a96a3;
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.tc-product-facts strong{
  display:block;
  overflow:hidden;
  color:var(--tc-navy);
  font-size:.94rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tc-product-section-nav{
  position:sticky;
  z-index:90;
  top:82px;
  margin-top:34px;
  border-top:1px solid #e6ebef;
  border-bottom:1px solid #e6ebef;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
}
.tc-product-section-nav>div{
  display:flex;
  align-items:center;
  gap:4px;
  overflow-x:auto;
  scrollbar-width:none;
}
.tc-product-section-nav>div::-webkit-scrollbar{display:none}
.tc-product-section-nav a{
  flex:0 0 auto;
  padding:18px 17px 16px;
  border-bottom:2px solid transparent;
  color:#647384;
  text-decoration:none;
  font-size:.77rem;
  font-weight:820;
  white-space:nowrap;
}
.tc-product-section-nav a:hover,
.tc-product-section-nav a:focus-visible{
  color:var(--tc-navy);
  border-bottom-color:var(--tc-primary);
}
.tc-product-body{
  padding:clamp(92px,9vw,142px) 0 clamp(92px,9vw,142px);
}
.tc-product-section{
  position:relative;
  margin-top:clamp(88px,9vw,138px);
  scroll-margin-top:170px;
}
.tc-product-section:first-child{margin-top:0}
.tc-product-section-number{
  position:absolute;
  top:-54px;
  right:0;
  color:rgba(0,59,135,.045);
  font-size:clamp(6.5rem,13vw,12rem);
  font-weight:900;
  line-height:1;
  pointer-events:none;
}
.tc-section-heading{
  position:relative;
  z-index:1;
  max-width:800px;
  margin-bottom:34px;
}
.tc-section-heading h2,
.tc-product-datasheet-copy h2,
.tc-product-support-card h2,
.tc-product-enquiry h2{
  margin:0;
  font-size:clamp(2.1rem,3.7vw,3.5rem);
  line-height:1.08;
  letter-spacing:-.034em;
}
.tc-product-overview-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr);
  align-items:start;
  gap:clamp(44px,6vw,90px);
}
.tc-product-content,
.tc-product-richtext{
  color:#4f6072;
  font-size:1.04rem;
  line-height:1.84;
}
.tc-product-content>:first-child,
.tc-product-richtext>:first-child{margin-top:0}
.tc-product-content>:last-child,
.tc-product-richtext>:last-child{margin-bottom:0}
.tc-product-content h2,
.tc-product-content h3,
.tc-product-richtext h3{margin-top:1.7em}
.tc-product-support-card{
  position:sticky;
  top:168px;
  padding:32px;
  border-radius:15px;
  color:#fff;
  background:
    radial-gradient(circle at 90% 0,rgba(0,174,240,.28),transparent 38%),
    linear-gradient(145deg,#002d69,#004a91);
  box-shadow:0 22px 54px rgba(0,59,135,.17);
}
.tc-product-support-card>span{color:#8ce3ff}
.tc-product-support-card h2{color:#fff;font-size:clamp(1.7rem,2.5vw,2.3rem)}
.tc-product-support-card p{color:rgba(255,255,255,.72);line-height:1.75}
.tc-product-support-card a{
  display:inline-flex;
  margin-top:10px;
  color:#fff;
  font-weight:850;
  text-decoration:none;
}
.tc-product-support-card a::after{content:" →";margin-left:8px;color:var(--tc-primary)}
.tc-product-technical-info{
  padding:clamp(38px,5vw,70px);
  border:1px solid var(--tc-border);
  border-radius:18px;
  background:
    linear-gradient(145deg,#f9fbfc,#edf4f7);
}
.tc-product-richtext table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid var(--tc-border);
  border-radius:11px;
  background:#fff;
}
.tc-product-richtext th,
.tc-product-richtext td{
  padding:14px 16px;
  border-right:1px solid var(--tc-border);
  border-bottom:1px solid var(--tc-border);
  text-align:left;
}
.tc-product-richtext th{color:var(--tc-navy);background:#eef6fa}
.tc-product-richtext tr:last-child>*{border-bottom:0}
.tc-product-richtext tr>*:last-child{border-right:0}
.tc-product-visuals{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:25px;
}
.tc-product-visual-card{
  overflow:hidden;
  border:1px solid var(--tc-border);
  border-radius:17px;
  background:#fff;
  box-shadow:0 16px 42px rgba(18,43,64,.075);
}
.tc-product-visual-copy{
  display:flex;
  align-items:center;
  gap:17px;
  padding:26px 28px 21px;
}
.tc-product-visual-copy>span{
  display:grid;
  flex:0 0 42px;
  width:42px;
  height:42px;
  place-items:center;
  border-radius:50%;
  color:var(--tc-navy);
  background:#eaf6fb;
  font-size:.73rem;
  font-weight:900;
}
.tc-product-visual-copy small{
  display:block;
  margin-bottom:2px;
  color:#8a96a3;
  font-size:.65rem;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.tc-product-visual-copy h3{margin:0;font-size:1.42rem}
.tc-product-visual-card>a{
  position:relative;
  min-height:360px;
  display:grid;
  place-items:center;
  padding:25px;
  background:linear-gradient(145deg,#f7fafb,#edf3f6);
  overflow:hidden;
}
.tc-product-visual-card img{
  width:100%;
  max-height:450px;
  object-fit:contain;
  transition:transform .3s ease;
}
.tc-product-visual-card>a:hover img,
.tc-product-visual-card>a:focus-visible img{transform:scale(1.025)}
.tc-product-card-action{
  position:absolute;
  right:18px;
  bottom:18px;
  padding:8px 11px;
  border-radius:999px;
  color:#fff;
  background:rgba(0,59,135,.92);
  font-size:.7rem;
  font-weight:850;
}
.tc-product-gallery-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
}
.tc-product-gallery-count{
  margin-bottom:34px;
  color:var(--tc-muted);
  font-size:.8rem;
  font-weight:820;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.tc-product-gallery{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:16px;
}
.tc-product-gallery-item{
  position:relative;
  grid-column:span 4;
  aspect-ratio:4/3;
  display:block;
  overflow:hidden;
  border-radius:13px;
  background:var(--tc-soft);
}
.tc-product-gallery-item:first-child:nth-last-child(n+4){
  grid-column:span 8;
  grid-row:span 2;
  aspect-ratio:auto;
}
.tc-product-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease,filter .35s ease;
}
.tc-product-gallery-item>span{
  position:absolute;
  right:16px;
  bottom:16px;
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:rgba(0,59,135,.92);
  opacity:0;
  transform:translateY(8px);
  transition:opacity .2s ease,transform .2s ease;
}
.tc-product-gallery-item:hover img,
.tc-product-gallery-item:focus-visible img{transform:scale(1.045);filter:saturate(1.06)}
.tc-product-gallery-item:hover>span,
.tc-product-gallery-item:focus-visible>span{opacity:1;transform:none}
.tc-product-datasheet-band{
  padding:clamp(78px,8vw,118px) 0;
  scroll-margin-top:165px;
  background:#edf4f7;
}
.tc-product-datasheet-card{
  display:grid;
  grid-template-columns:minmax(220px,350px) minmax(0,1fr);
  align-items:center;
  gap:clamp(42px,6vw,90px);
  padding:clamp(38px,5vw,70px);
  border-radius:20px;
  color:#fff;
  background:
    radial-gradient(circle at 84% 16%,rgba(0,174,240,.25),transparent 30%),
    linear-gradient(130deg,#00255a,#003b87 62%,#0060a7);
  box-shadow:0 30px 74px rgba(0,46,104,.19);
}
.tc-product-datasheet-cover{
  display:block;
  padding:14px;
  border-radius:11px;
  background:rgba(255,255,255,.1);
  box-shadow:0 20px 44px rgba(0,18,48,.2);
  transition:transform .2s ease;
}
.tc-product-datasheet-cover:hover{transform:translateY(-4px)}
.tc-product-datasheet-cover img{
  display:block;
  width:100%;
  max-height:440px;
  object-fit:contain;
}
.tc-product-datasheet-copy>span{color:#8ce3ff}
.tc-product-datasheet-copy h2{color:#fff}
.tc-product-datasheet-copy p{
  max-width:670px;
  color:rgba(255,255,255,.72);
  line-height:1.8;
}
.tc-product-enquiry-band{
  padding:clamp(62px,7vw,94px) 0;
  color:#fff;
  background:linear-gradient(110deg,var(--tc-primary),#0087c8);
}
.tc-product-enquiry{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:36px;
}
.tc-product-enquiry>div>span{color:rgba(255,255,255,.72)}
.tc-product-enquiry h2{color:#fff}
.tc-product-enquiry p{
  max-width:780px;
  margin-bottom:0;
  color:rgba(255,255,255,.82);
}
@media(max-width:1160px){
  .tc-product-hero{
    grid-template-columns:minmax(0,1.06fr) minmax(360px,.8fr);
  }
  .tc-product-stage-preview{width:165px}
  .tc-product-stage-preview-colour{right:-18px}
  .tc-product-stage-preview-sketch{left:-18px}
}
@media(max-width:980px){
  .tc-product-hero-band{padding-bottom:125px}
  .tc-product-hero-geometry{width:100%;clip-path:none}
  .tc-product-hero{grid-template-columns:1fr;gap:34px}
  .tc-product-stage{margin-right:0}
  .tc-product-summary-card{margin-left:0}
  .tc-product-facts-wrap{margin-top:-54px}
  .tc-product-overview-grid{grid-template-columns:1fr}
  .tc-product-support-card{position:static}
}
@media(max-width:760px){
  .tc-product-detail{--tc-product-shell:min(100% - 28px,1380px)}
  .tc-product-hero-band{min-height:0;padding:38px 0 105px}
  .tc-product-stage{min-height:420px;border-radius:16px}
  .tc-product-stage-backdrop,
  .tc-product-stage-main{border-radius:16px}
  .tc-product-stage-main{padding:40px 24px 70px}
  .tc-product-stage-preview{display:none}
  .tc-product-stage-label{top:20px;left:20px}
  .tc-product-stage-action{right:18px;bottom:18px}
  .tc-product-summary-card{padding:34px 26px;border-radius:16px}
  .tc-product-summary-card h1{font-size:clamp(2.45rem,12vw,4rem)}
  .tc-product-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-product-facts>div:nth-child(2){border-right:0}
  .tc-product-facts>div:nth-child(-n+2){border-bottom:1px solid var(--tc-border)}
  .tc-product-section-nav{top:70px}
  .tc-product-visuals{grid-template-columns:1fr}
  .tc-product-gallery-item,
  .tc-product-gallery-item:first-child:nth-last-child(n+4){
    grid-column:span 12;
    grid-row:auto;
    aspect-ratio:4/3;
  }
  .tc-product-datasheet-card{grid-template-columns:1fr}
  .tc-product-enquiry{align-items:flex-start;flex-direction:column}
  .tc-product-gallery-heading{align-items:flex-start;flex-direction:column}
  .tc-product-gallery-count{margin:0 0 20px}
}
@media(max-width:520px){
  .tc-product-stage{min-height:340px}
  .tc-product-stage-main{padding:32px 18px 64px}
  .tc-product-stage-label{max-width:70%}
  .tc-product-hero-actions{display:grid}
  .tc-product-button{width:100%}
  .tc-product-facts>div{padding:18px 17px}
  .tc-product-facts strong{font-size:.84rem}
  .tc-product-technical-info{padding:25px 20px}
  .tc-product-visual-copy{padding:22px 20px 17px}
  .tc-product-visual-card>a{min-height:280px;padding:18px}
  .tc-product-datasheet-card{padding:27px 21px}
}
@media(prefers-reduced-motion:reduce){
  .tc-product-stage-main img,
  .tc-product-stage-preview,
  .tc-product-visual-card img,
  .tc-product-gallery-item img{transition:none}
}

/* Site-wide linked-image lightbox */
body.tc-lightbox-open{overflow:hidden}
.tc-lightbox{
  position:fixed;
  z-index:10050;
  inset:0;
  display:grid;
  place-items:center;
  padding:clamp(18px,3vw,40px);
  background:rgba(0,18,45,.93);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease,visibility .2s ease;
}
.tc-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.tc-lightbox-frame{
  position:relative;
  width:min(1320px,100%);
  height:min(88vh,920px);
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  align-items:center;
}
.tc-lightbox-stage{
  min-height:0;
  display:grid;
  place-items:center;
}
.tc-lightbox-image{
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:calc(88vh - 90px);
  object-fit:contain;
  border-radius:8px;
  box-shadow:0 30px 90px rgba(0,0,0,.42);
}
.tc-lightbox-caption{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:13px 90px 0;
  color:rgba(255,255,255,.76);
  text-align:center;
  font-size:.88rem;
}
.tc-lightbox-close,
.tc-lightbox-nav{
  position:absolute;
  z-index:2;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.24);
  color:#fff;
  background:rgba(255,255,255,.08);
  cursor:pointer;
  backdrop-filter:blur(10px);
}
.tc-lightbox-close{
  top:0;
  right:0;
  width:48px;
  height:48px;
  border-radius:50%;
  font-size:1.65rem;
}
.tc-lightbox-nav{
  top:50%;
  width:50px;
  height:64px;
  border-radius:8px;
  transform:translateY(-50%);
  font-size:1.7rem;
}
.tc-lightbox-prev{left:0}
.tc-lightbox-next{right:0}
.tc-lightbox-close:hover,
.tc-lightbox-nav:hover{background:var(--tc-primary);border-color:var(--tc-primary)}
.tc-lightbox-nav[hidden]{display:none}
.tc-lightbox-counter{
  position:absolute;
  top:14px;
  left:14px;
  color:rgba(255,255,255,.62);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
}
@media(max-width:980px){
  .tc-product-hero{grid-template-columns:1fr}
  .tc-product-summary{max-width:760px}
  .tc-product-assurance{max-width:760px}
  .tc-product-overview-grid{grid-template-columns:1fr}
  .tc-product-support-card{position:static}
}
@media(max-width:760px){
  .tc-product-hero-band{padding-top:42px}
  .tc-product-main-image,.tc-product-image-placeholder{min-height:330px;padding:22px}
  .tc-product-summary h1{font-size:clamp(2.45rem,12vw,4rem)}
  .tc-product-assurance{grid-template-columns:1fr}
  .tc-product-visuals{grid-template-columns:1fr}
  .tc-product-gallery-item,
  .tc-product-gallery-item:first-child:nth-last-child(n+4){
    grid-column:span 12;
    grid-row:auto;
    aspect-ratio:4/3;
  }
  .tc-product-datasheet-card{grid-template-columns:1fr}
  .tc-product-enquiry{align-items:flex-start;flex-direction:column}
  .tc-product-gallery-heading{align-items:flex-start;flex-direction:column}
  .tc-product-gallery-count{margin:0 0 20px}
  .tc-lightbox{padding:14px}
  .tc-lightbox-frame{height:92vh}
  .tc-lightbox-nav{top:auto;bottom:2px;width:48px;height:48px;border-radius:50%;transform:none}
  .tc-lightbox-prev{left:0}
  .tc-lightbox-next{right:0}
  .tc-lightbox-caption{padding-inline:58px}
}
@media(max-width:520px){
  .tc-product-shell,.tc-product-body{width:min(100% - 28px,var(--tc-container))}
  .tc-product-hero-actions{display:grid}
  .tc-product-button{width:100%}
  .tc-product-technical-info{padding:24px 20px}
  .tc-product-visual-copy{padding:22px 20px 17px}
  .tc-product-visual-card>a{min-height:270px;padding:18px}
  .tc-product-datasheet-card{padding:26px 20px}
}
@media(prefers-reduced-motion:reduce){
  .tc-product-main-image img,
  .tc-product-visual-card img,
  .tc-product-gallery-item img,
  .tc-lightbox{transition:none}
}

/* Responsive mega menu — v1.0.7 */
.tc-header-inner { position: relative; }
.tc-navigation-menu { min-width: 0; }
.tc-navigation > .tc-mega-payload { display: none !important; }
.tc-navigation .tc-has-mega { position: static; }
.tc-navigation .tc-has-mega > a,
.tc-navigation .tc-has-mega > span,
.tc-navigation .tc-has-mega > button:not(.tc-mega-toggle) { padding-inline-end: 38px; }
.tc-mega-toggle {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 30px;
  height: 30px;
  margin-inline-start: -36px;
  padding: 0;
  border: 0;
  background: transparent;
  transform: translateY(-50%);
}
.tc-mega-toggle span {
  display: block;
  width: 8px;
  height: 8px;
  margin: 0 auto 4px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  color: var(--tc-navy);
  transform: rotate(45deg);
  transition: transform .2s ease, margin .2s ease;
}
.tc-has-mega.is-open > .tc-mega-toggle span {
  margin-top: 5px;
  transform: rotate(225deg);
}
.tc-mega-panel {
  position: absolute;
  z-index: 990;
  top: calc(100% - 2px);
  left: 50%;
  width: min(calc(100vw - 40px), var(--tc-mega-max-width, 1220px));
  /* The transparent top padding is part of the panel and forms a hover bridge. */
  padding-top: 16px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 0);
  transition: opacity .18s ease, visibility .18s ease;
}
.tc-has-mega:hover > .tc-mega-panel,
.tc-has-mega:focus-within > .tc-mega-panel,
.tc-has-mega.is-hover-open > .tc-mega-panel,
.tc-has-mega.is-open > .tc-mega-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}
.tc-mega-panel-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(24px, 3vw, 44px);
  max-height: min(76vh, 720px);
  overflow: auto;
  padding: clamp(28px, 3.4vw, 46px);
  background: #fff;
  border: 1px solid var(--tc-border);
  border-top: 4px solid var(--tc-primary);
  border-radius: 0 0 14px 14px;
  box-shadow: 0 24px 60px rgba(18,43,64,.18);
}
.tc-mega-panel-inner.has-modules {
  grid-template-columns: minmax(0, 1.65fr) minmax(260px, .75fr);
}
.tc-mega-kicker {
  margin: 0 0 6px;
  color: var(--tc-primary);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.tc-mega-links > h2 {
  margin: 0 0 22px;
  color: var(--tc-navy);
  font-size: clamp(1.55rem, 2.3vw, 2.15rem);
  line-height: 1.1;
}
.tc-navigation .tc-mega-menu-list,
.tc-navigation .tc-mega-menu-list.collapse {
  position: static;
  display: grid !important;
  grid-template-columns: repeat(var(--tc-mega-link-columns, 3), minmax(0, 1fr));
  gap: 8px 22px;
  min-width: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  opacity: 1;
  visibility: visible;
  transform: none;
}
.tc-navigation .tc-mega-menu-list > li { position: static; }
.tc-navigation .tc-mega-menu-list > li > a,
.tc-navigation .tc-mega-menu-list > li > span,
.tc-navigation .tc-mega-menu-list > li > button {
  position: relative;
  min-height: 46px;
  padding: 10px 12px 10px 22px;
  border-radius: 7px;
  color: var(--tc-text);
  line-height: 1.35;
}
.tc-navigation .tc-mega-menu-list > li > a::before,
.tc-navigation .tc-mega-menu-list > li > span::before {
  content: "";
  position: absolute;
  top: 19px;
  left: 8px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--tc-primary);
}
.tc-navigation .tc-mega-menu-list > li > a:hover,
.tc-navigation .tc-mega-menu-list > li.current > a,
.tc-navigation .tc-mega-menu-list > li.active > a {
  color: var(--tc-navy);
  background: color-mix(in srgb, var(--tc-primary) 9%, white);
}
.tc-navigation .tc-mega-menu-list ul {
  position: static;
  display: block;
  min-width: 0;
  margin: 0 0 8px 16px;
  padding: 0;
  border: 0;
  box-shadow: none;
  opacity: 1;
  visibility: visible;
  transform: none;
}
.tc-navigation .tc-mega-menu-list ul a {
  min-height: 34px;
  padding: 6px 10px;
  color: var(--tc-muted);
  font-size: .92rem;
}
.tc-mega-modules {
  display: grid;
  align-content: start;
  gap: 16px;
}
.tc-mega-module {
  overflow: hidden;
  padding: 22px;
  border: 1px solid var(--tc-border);
  border-radius: 12px;
  background: linear-gradient(145deg, #f7fafc, #eef5f8);
}
.tc-mega-module-title {
  margin: 0 0 13px;
  color: var(--tc-navy);
  font-size: 1.2rem;
  line-height: 1.25;
}
.tc-mega-module-content > :first-child { margin-top: 0; }
.tc-mega-module-content > :last-child { margin-bottom: 0; }
.tc-mega-module-content img {
  display: block;
  width: 100%;
  border-radius: 8px;
}
.tc-mega-module-content .mod-menu {
  display: grid;
  gap: 5px;
}
.tc-mega-module-content .mod-menu a {
  min-height: 38px;
  padding: 7px 0;
  border-bottom: 1px solid var(--tc-border);
}
/* Joomla's collapse class must not suppress desktop hover dropdowns. */
@media (min-width: 1181px) {
  .tc-navigation li:hover > ul.collapse,
  .tc-navigation li:focus-within > ul.collapse,
  .tc-navigation li > ul.collapse.show { display: block; }
}
@media (max-width: 1180px) {
  .tc-navigation-menu { width: 100%; }
  .tc-navigation .tc-has-mega { position: relative; }
  .tc-navigation .tc-has-mega > a,
  .tc-navigation .tc-has-mega > span,
  .tc-navigation .tc-has-mega > button:not(.tc-mega-toggle) { padding-inline-end: 54px; }
  .tc-mega-toggle {
    top: 7px;
    right: 20px;
    width: 40px;
    height: 40px;
    margin: 0;
    transform: none;
  }
  html[dir="rtl"] .tc-mega-toggle { right: auto; left: 20px; }
  .tc-mega-panel {
    position: static;
    display: none;
    width: 100%;
    padding: 0 14px 14px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
  .tc-has-mega:hover > .tc-mega-panel,
  .tc-has-mega:focus-within > .tc-mega-panel,
  .tc-has-mega.is-hover-open > .tc-mega-panel { display: none; }
  .tc-has-mega.is-open > .tc-mega-panel { display: block; }
  .tc-mega-panel-inner,
  .tc-mega-panel-inner.has-modules {
    grid-template-columns: 1fr;
    max-height: none;
    padding: 24px;
    border-top-width: 3px;
    border-radius: 10px;
    box-shadow: 0 12px 34px rgba(18,43,64,.1);
  }
  .tc-navigation .tc-mega-menu-list,
  .tc-navigation .tc-mega-menu-list.collapse {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0;
  }
}
@media (max-width: 620px) {
  .tc-navigation .tc-mega-menu-list,
  .tc-navigation .tc-mega-menu-list.collapse { grid-template-columns: 1fr; }
  .tc-mega-panel-inner,
  .tc-mega-panel-inner.has-modules { padding: 20px; }
}

/* =========================================================
   Site-wide header and footer — v1.1.0
   ========================================================= */
.tc-topbar{
  background:var(--tc-navy);
  color:rgba(255,255,255,.84);
  border-bottom:1px solid rgba(255,255,255,.08);
  font-size:.82rem;
}
.tc-topbar-inner{min-height:42px}
.tc-topbar-left,.tc-topbar-right{display:flex;align-items:center;gap:22px}
.tc-topbar-message{display:inline-flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.025em}
.tc-topbar-message:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--tc-primary);box-shadow:0 0 0 4px rgba(0,174,240,.13)}
.tc-topbar-link{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.86);text-decoration:none;transition:color .18s ease}
.tc-topbar-link:hover{color:#fff}
.tc-topbar-link svg{width:16px;height:16px;fill:var(--tc-primary)}
.tc-header{background:rgba(255,255,255,.98);backdrop-filter:saturate(150%) blur(12px)}
.tc-header-inner{min-height:98px;display:grid;grid-template-columns:minmax(270px,.95fr) minmax(0,2.2fr) auto;align-items:center;gap:28px}
.tc-header.is-scrolled .tc-header-inner{min-height:78px}
.tc-brand-cluster{display:flex;min-width:0;align-items:center;gap:22px}
.tc-brand{flex:0 1 auto}
.tc-brand a{display:flex;align-items:center}
.tc-brand img{max-width:230px;max-height:62px;transition:max-height .2s ease}
.tc-header.is-scrolled .tc-brand img{max-height:52px}
.tc-parent-brand{display:flex;align-items:center;gap:10px;padding-inline-start:20px;border-inline-start:1px solid var(--tc-border)}
.tc-parent-brand-label{color:var(--tc-muted);font-size:.65rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.tc-parent-brand img{max-width:86px;max-height:48px}
.tc-navigation{min-width:0}
.tc-navigation > .tc-navigation-menu > ul,
.tc-navigation > .tc-navigation-menu > div > ul,
.tc-navigation .tc-navigation-menu ul.mod-menu{justify-content:center;gap:2px}
.tc-navigation a{position:relative;padding-inline:12px;font-size:.92rem;font-weight:720;white-space:nowrap}
.tc-navigation .tc-navigation-menu > ul > li > a:after,
.tc-navigation .tc-navigation-menu ul.mod-menu > li > a:after{
  content:"";position:absolute;right:12px;bottom:5px;left:12px;height:2px;background:var(--tc-primary);transform:scaleX(0);transform-origin:center;transition:transform .18s ease
}
.tc-navigation .tc-navigation-menu > ul > li.current > a:after,
.tc-navigation .tc-navigation-menu > ul > li.active > a:after,
.tc-navigation .tc-navigation-menu > ul > li > a:hover:after,
.tc-navigation .tc-navigation-menu ul.mod-menu > li.current > a:after,
.tc-navigation .tc-navigation-menu ul.mod-menu > li.active > a:after,
.tc-navigation .tc-navigation-menu ul.mod-menu > li > a:hover:after{transform:scaleX(1)}
.tc-header-actions{display:flex;align-items:center;justify-content:flex-end}
.tc-header-cta{display:inline-flex;min-height:48px;align-items:center;gap:10px;padding:0 20px;border-radius:5px;background:var(--tc-primary);color:#fff;text-decoration:none;font-size:.88rem;font-weight:850;white-space:nowrap;box-shadow:0 12px 28px rgba(0,174,240,.22);transition:transform .18s ease,background .18s ease}
.tc-header-cta:hover{color:#fff;background:var(--tc-navy);transform:translateY(-2px)}
.tc-header-cta svg{width:18px;height:18px;fill:currentColor}

.tc-footer-top{position:relative;padding-block:34px;background:linear-gradient(110deg,var(--tc-primary),#0088c7);color:#fff}
.tc-footer-top a{color:#fff}
.tc-site-footer{position:relative;color:rgba(255,255,255,.72);background:#00285f;overflow:hidden}
.tc-site-footer:before{content:"";position:absolute;right:-230px;top:-260px;width:580px;height:580px;border:1px solid rgba(255,255,255,.06);border-radius:50%;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.014);pointer-events:none}
.tc-footer-main{position:relative;padding-block:76px 68px;background:linear-gradient(135deg,#00285f 0%,#003b87 64%,#004a8e 100%)}
.tc-footer-grid{display:grid;grid-template-columns:minmax(260px,1.35fr) repeat(3,minmax(170px,.75fr));gap:clamp(34px,5vw,72px);align-items:start}
.tc-footer-brand-lockup{display:flex;align-items:center;gap:20px;margin-bottom:24px}
.tc-footer-logo{display:inline-flex;padding:12px 15px;border-radius:8px;background:#fff}
.tc-footer-logo img{display:block;width:auto;max-width:210px;max-height:50px}
.tc-footer-parent-brand{display:grid;gap:5px;padding-inline-start:18px;border-inline-start:1px solid rgba(255,255,255,.18)}
.tc-footer-parent-brand span{color:rgba(255,255,255,.52);font-size:.63rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.tc-footer-parent-brand img{display:block;width:auto;max-width:82px;max-height:46px;filter:brightness(0) invert(1);opacity:.84}
.tc-footer-description{max-width:390px;margin:0 0 20px;color:rgba(255,255,255,.68);line-height:1.8}
.tc-footer-about-link{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:800}
.tc-footer-about-link span{color:var(--tc-primary);transition:transform .18s ease}.tc-footer-about-link:hover span{transform:translateX(4px)}
.tc-footer-column h2,.tc-footer-column .moduletable > h3,.tc-footer-column .module-title{margin:0 0 22px;color:#fff;font-size:1.08rem;line-height:1.2}
.tc-footer-column h2:after,.tc-footer-column .moduletable > h3:after,.tc-footer-column .module-title:after{content:"";display:block;width:34px;height:2px;margin-top:11px;background:var(--tc-primary)}
.tc-footer-links,.tc-footer-column .mod-menu{display:grid;gap:11px;margin:0;padding:0;list-style:none}
.tc-footer-links a,.tc-footer-column .mod-menu a{display:inline-flex;color:rgba(255,255,255,.68);text-decoration:none;line-height:1.45;transition:color .18s ease,transform .18s ease}
.tc-footer-links a:hover,.tc-footer-column .mod-menu a:hover{color:#fff;transform:translateX(4px)}
.tc-footer-contact-column{display:grid;align-content:start;gap:14px}
.tc-footer-contact-item{display:flex;align-items:flex-start;gap:11px;color:rgba(255,255,255,.72);text-decoration:none;line-height:1.55}
.tc-footer-contact-item svg{flex:0 0 18px;width:18px;height:18px;margin-top:3px;fill:var(--tc-primary)}
a.tc-footer-contact-item:hover{color:#fff}
.tc-footer-contact-button{display:inline-flex;width:max-content;min-height:43px;align-items:center;margin-top:8px;padding:0 17px;border:1px solid rgba(255,255,255,.24);border-radius:5px;color:#fff;text-decoration:none;font-weight:800}
.tc-footer-contact-button:hover{background:var(--tc-primary);border-color:var(--tc-primary);color:#fff}
.tc-footer-bottom{position:relative;background:#001d47;border-top:1px solid rgba(255,255,255,.08)}
.tc-footer-bottom-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:rgba(255,255,255,.58);font-size:.86rem}
.tc-footer-bottom-modules{display:flex;align-items:center;gap:18px}
.tc-footer-bottom .mod-menu{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;list-style:none}
.tc-footer-bottom a{color:rgba(255,255,255,.72);text-decoration:none}.tc-footer-bottom a:hover{color:#fff}
.tc-bottom{background:#eef4f7;border-top:0;padding-block:62px}

@media(max-width:1250px){
  .tc-header-inner{grid-template-columns:minmax(235px,.9fr) minmax(0,2fr) auto;gap:18px}
  .tc-brand-cluster{gap:14px}.tc-parent-brand{padding-inline-start:14px}.tc-parent-brand-label{display:none}
  .tc-navigation a{padding-inline:9px;font-size:.86rem}
  .tc-header-cta{padding-inline:16px}
}
@media(max-width:1180px){
  .tc-topbar-inner{min-height:40px}
  .tc-header-inner{grid-template-columns:minmax(190px,1fr) auto;min-height:84px}
  .tc-header.is-scrolled .tc-header-inner{min-height:74px}
  .tc-menu-toggle{display:grid;grid-column:2;grid-row:1}
  .tc-header-actions{display:none}
  .tc-navigation{grid-column:1/-1;top:100%}
  .tc-navigation > .tc-navigation-menu > ul,
  .tc-navigation > .tc-navigation-menu > div > ul,
  .tc-navigation .tc-navigation-menu ul.mod-menu{justify-content:flex-start}
  .tc-navigation .tc-navigation-menu > ul > li > a:after,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > a:after{display:none}
  .tc-navigation a{font-size:.97rem}
  .tc-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-footer-brand-column{grid-column:1/-1;max-width:720px}
}
@media(max-width:720px){
  .tc-topbar-left{display:none}
  .tc-topbar-inner{justify-content:center}
  .tc-topbar-right{width:100%;justify-content:center;gap:14px}
  .tc-topbar-link span{font-size:.75rem}
  .tc-parent-brand{display:none}
  .tc-brand img{max-width:195px;max-height:52px}
  .tc-footer-main{padding-block:58px 52px}
  .tc-footer-grid{grid-template-columns:1fr;gap:38px}
  .tc-footer-brand-column{grid-column:auto}
  .tc-footer-bottom-inner{align-items:flex-start;flex-direction:column;justify-content:center;padding-block:20px}
  .tc-footer-bottom-modules{align-items:flex-start;flex-direction:column}
}
@media(max-width:470px){
  .tc-topbar-link:first-child{display:none}
  .tc-footer-brand-lockup{align-items:flex-start;flex-direction:column}
  .tc-footer-parent-brand{padding-inline-start:0;border-inline-start:0}
}


/* =========================================================
   Header spatial refinement — v1.1.1
   The site content container remains unchanged. Only the
   top bar/header receive a wider dedicated working area.
   ========================================================= */
.tc-topbar-inner,
.tc-header-inner{
  width:min(var(--tc-header-container,1420px),calc(100% - 40px));
  max-width:none;
}
.tc-header-inner{
  grid-template-columns:max-content minmax(0,1fr) max-content;
  gap:clamp(18px,2vw,34px);
}
.tc-brand-cluster{
  width:max-content;
  max-width:none;
  flex-wrap:nowrap;
  flex-shrink:0;
  gap:18px;
}
.tc-brand{
  flex:0 0 auto;
}
.tc-brand img{
  width:auto;
  max-width:205px;
  max-height:56px;
}
.tc-header.is-scrolled .tc-brand img{
  max-height:49px;
}
.tc-parent-brand{
  flex:0 0 auto;
  gap:8px;
  padding-inline-start:17px;
}
.tc-parent-brand img{
  width:auto;
  max-width:74px;
  max-height:44px;
}
.tc-parent-brand-label{
  font-size:.61rem;
  letter-spacing:.085em;
}
.tc-navigation,
.tc-navigation-menu{
  width:100%;
  min-width:0;
}
.tc-navigation > .tc-navigation-menu > ul,
.tc-navigation > .tc-navigation-menu > div > ul,
.tc-navigation .tc-navigation-menu ul.mod-menu{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:center;
  gap:clamp(0px,.28vw,5px);
}
.tc-navigation .tc-navigation-menu > ul > li,
.tc-navigation .tc-navigation-menu ul.mod-menu > li{
  flex:0 0 auto;
}
.tc-navigation a{
  min-width:max-content;
  padding-inline:clamp(7px,.62vw,11px);
  font-size:clamp(.82rem,.76vw,.91rem);
  line-height:1.25;
  white-space:nowrap;
}
.tc-navigation .tc-has-mega > a,
.tc-navigation .tc-has-mega > span,
.tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
  padding-inline-end:31px;
  white-space:nowrap;
}
.tc-mega-toggle{
  width:27px;
  height:30px;
  margin-inline-start:-31px;
}
.tc-header-actions{
  flex:0 0 auto;
}
.tc-header-cta{
  min-height:46px;
  padding-inline:18px;
  font-size:.86rem;
}

@media (max-width:1380px) and (min-width:1181px){
  .tc-topbar-inner,
  .tc-header-inner{
    width:calc(100% - 32px);
  }
  .tc-header-inner{
    gap:14px;
  }
  .tc-brand-cluster{
    gap:12px;
  }
  .tc-brand img{
    max-width:186px;
    max-height:51px;
  }
  .tc-parent-brand{
    padding-inline-start:12px;
  }
  .tc-parent-brand-label{
    display:none;
  }
  .tc-parent-brand img{
    max-width:65px;
    max-height:40px;
  }
  .tc-navigation a{
    padding-inline:6px;
    font-size:.8rem;
  }
  .tc-navigation .tc-has-mega > a,
  .tc-navigation .tc-has-mega > span,
  .tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
    padding-inline-end:28px;
  }
  .tc-mega-toggle{
    margin-inline-start:-28px;
  }
  .tc-header-cta{
    min-height:44px;
    padding-inline:14px;
    font-size:.81rem;
  }
}

@media (max-width:1180px){
  .tc-topbar-inner,
  .tc-header-inner{
    width:min(var(--tc-container),calc(100% - 40px));
  }
  .tc-header-inner{
    grid-template-columns:minmax(190px,1fr) auto;
    gap:16px;
  }
  .tc-brand-cluster{
    width:auto;
    max-width:100%;
  }
  .tc-navigation > .tc-navigation-menu > ul,
  .tc-navigation > .tc-navigation-menu > div > ul,
  .tc-navigation .tc-navigation-menu ul.mod-menu{
    display:block;
  }
  .tc-navigation a{
    min-width:0;
    padding-inline:20px;
    font-size:.97rem;
    white-space:normal;
  }
}

@media (max-width:720px){
  .tc-topbar-inner,
  .tc-header-inner{
    width:min(100% - 28px,var(--tc-container));
  }
}

/* =========================================================
   Header, mega-menu, final-section and icon refinement — v1.1.2
   ========================================================= */

/* Menu headings such as Technical Resources must look exactly like links. */
.tc-navigation .tc-navigation-menu > ul > li > span,
.tc-navigation .tc-navigation-menu > div > ul > li > span,
.tc-navigation .tc-navigation-menu ul.mod-menu > li > span,
.tc-navigation .tc-navigation-menu > ul > li > button:not(.tc-mega-toggle),
.tc-navigation .tc-navigation-menu > div > ul > li > button:not(.tc-mega-toggle),
.tc-navigation .tc-navigation-menu ul.mod-menu > li > button:not(.tc-mega-toggle),
.tc-navigation .tc-navigation-menu .nav-header{
  position:relative;
  display:flex;
  min-width:max-content;
  min-height:44px;
  align-items:center;
  padding:0 clamp(7px,.62vw,11px);
  border:0;
  background:transparent;
  color:var(--tc-text);
  font-size:clamp(.82rem,.76vw,.91rem);
  font-weight:720;
  line-height:1.25;
  white-space:nowrap;
  text-decoration:none;
}
.tc-navigation .tc-navigation-menu > ul > li:hover > span,
.tc-navigation .tc-navigation-menu > div > ul > li:hover > span,
.tc-navigation .tc-navigation-menu ul.mod-menu > li:hover > span,
.tc-navigation .tc-navigation-menu > ul > li:focus-within > span,
.tc-navigation .tc-navigation-menu > div > ul > li:focus-within > span,
.tc-navigation .tc-navigation-menu ul.mod-menu > li:focus-within > span,
.tc-navigation .tc-navigation-menu .nav-header:hover{
  color:var(--tc-primary);
}
.tc-navigation .tc-has-mega > span,
.tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
  padding-inline-end:31px;
}

/* A smaller, icon-led quote action leaves more room for navigation. */
.tc-header-cta{
  min-height:42px;
  gap:8px;
  padding-inline:14px;
  border-radius:999px;
  font-size:.80rem;
  box-shadow:0 9px 22px rgba(0,174,240,.18);
}
.tc-header-cta svg{
  flex:0 0 17px;
  width:17px;
  height:17px;
}
.tc-header-cta-short{display:none}
@media (max-width:1600px) and (min-width:1181px){
  .tc-header-cta-label{display:none}
  .tc-header-cta-short{display:inline}
}

/* The dropdown begins directly at the white header edge—no blue/empty strip. */
.tc-mega-panel{
  top:100%;
  padding-top:0;
}
.tc-mega-panel-inner{
  border-radius:0 0 14px 14px;
}

/* The final builder section joins the footer as a full-width band. */
.has-full-width-builder .tragbuilder-page > .tb-section:last-child{
  margin:0!important;
  margin-inline:0!important;
  margin-bottom:0!important;
  border-radius:0!important;
}
.has-full-width-builder .tragbuilder-page > .tb-section:last-child::before,
.has-full-width-builder .tragbuilder-page > .tb-section:last-child::after{
  border-radius:0!important;
}

/* Load Joomla Font Awesome and provide a resilient heart fallback in copyright. */
.tc-copyright i[class*="fa-"]{
  display:inline-block;
  margin-inline:.18em;
  color:var(--tc-primary);
  font-style:normal;
}
.tc-copyright .fa-heart::before,
.tc-copyright .fas.fa-heart::before,
.tc-copyright .far.fa-heart::before,
.tc-copyright .fa-solid.fa-heart::before,
.tc-copyright .fa-regular.fa-heart::before{
  content:"\2665"!important;
  font-family:Arial,sans-serif!important;
  font-weight:700!important;
}

@media (max-width:1380px) and (min-width:1181px){
  .tc-navigation .tc-navigation-menu > ul > li > span,
  .tc-navigation .tc-navigation-menu > div > ul > li > span,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > span,
  .tc-navigation .tc-navigation-menu > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu > div > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu .nav-header{
    padding-inline:6px;
    font-size:.8rem;
  }
  .tc-navigation .tc-has-mega > span,
  .tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
    padding-inline-end:28px;
  }
  .tc-header-cta{
    min-height:40px;
    padding-inline:12px;
    font-size:.78rem;
  }
}

@media (max-width:1180px){
  .tc-navigation .tc-navigation-menu > ul > li > span,
  .tc-navigation .tc-navigation-menu > div > ul > li > span,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > span,
  .tc-navigation .tc-navigation-menu > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu > div > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu .nav-header{
    min-width:0;
    padding-inline:20px;
    font-size:.97rem;
    white-space:normal;
  }
  .tc-mega-panel{padding-top:0}
}


/* =========================================================
   Full-width desktop navigation distribution — v1.1.3
   Use the complete navigation zone instead of leaving unused
   space on either side of the top-level menu items.
   ========================================================= */
@media (min-width:1181px){
  .tc-navigation-menu,
  .tc-navigation-menu > div,
  .tc-navigation-menu > .moduletable{
    width:100%;
    min-width:0;
  }

  .tc-navigation > .tc-navigation-menu > ul,
  .tc-navigation > .tc-navigation-menu > div > ul,
  .tc-navigation .tc-navigation-menu ul.mod-menu{
    width:100%;
    min-width:0;
    align-items:stretch;
    justify-content:stretch;
    gap:0;
  }

  .tc-navigation .tc-navigation-menu > ul > li,
  .tc-navigation .tc-navigation-menu > div > ul > li,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li{
    display:flex;
    flex:1 1 auto;
    min-width:0;
    align-items:stretch;
    justify-content:center;
  }

  .tc-navigation .tc-navigation-menu > ul > li > a,
  .tc-navigation .tc-navigation-menu > div > ul > li > a,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > a,
  .tc-navigation .tc-navigation-menu > ul > li > span,
  .tc-navigation .tc-navigation-menu > div > ul > li > span,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > span,
  .tc-navigation .tc-navigation-menu > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu > div > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu .nav-header{
    width:100%;
    min-width:max-content;
    justify-content:center;
    padding-inline:clamp(8px,.7vw,14px);
    text-align:center;
  }

  .tc-navigation .tc-has-mega > a,
  .tc-navigation .tc-has-mega > span,
  .tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
    padding-inline-start:clamp(8px,.7vw,14px);
    padding-inline-end:31px;
  }

  .tc-navigation .tc-navigation-menu > ul > li > a::after,
  .tc-navigation .tc-navigation-menu > div > ul > li > a::after,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > a::after{
    right:clamp(12px,1vw,20px);
    left:clamp(12px,1vw,20px);
  }
}

@media (min-width:1181px) and (max-width:1320px){
  .tc-navigation .tc-navigation-menu > ul > li > a,
  .tc-navigation .tc-navigation-menu > div > ul > li > a,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > a,
  .tc-navigation .tc-navigation-menu > ul > li > span,
  .tc-navigation .tc-navigation-menu > div > ul > li > span,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > span,
  .tc-navigation .tc-navigation-menu > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu > div > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu .nav-header{
    padding-inline:7px;
    font-size:.78rem;
  }
}


/* =========================================================
   Compact desktop navigation and paired mega toggles — v1.1.4
   Keep the navigation zone full width, but stop each menu item
   from stretching into an oversized block. Mega-menu arrows are
   positioned as part of the label group rather than independently.
   ========================================================= */
@media (min-width:1181px){
  .tc-navigation > .tc-navigation-menu > ul,
  .tc-navigation > .tc-navigation-menu > div > ul,
  .tc-navigation .tc-navigation-menu ul.mod-menu{
    justify-content:center;
    gap:clamp(4px,.45vw,8px);
  }

  .tc-navigation .tc-navigation-menu > ul > li,
  .tc-navigation .tc-navigation-menu > div > ul > li,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li{
    flex:0 0 auto;
    width:auto;
    min-width:0;
  }

  .tc-navigation .tc-navigation-menu > ul > li > a,
  .tc-navigation .tc-navigation-menu > div > ul > li > a,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > a,
  .tc-navigation .tc-navigation-menu > ul > li > span,
  .tc-navigation .tc-navigation-menu > div > ul > li > span,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > span,
  .tc-navigation .tc-navigation-menu > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu > div > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu .nav-header{
    width:auto;
    min-width:max-content;
    padding-inline:clamp(8px,.56vw,11px);
  }

  .tc-navigation .tc-has-mega{
    display:grid!important;
    grid-template-columns:max-content 20px;
    column-gap:1px;
    align-items:center;
    justify-content:center;
  }

  .tc-navigation .tc-has-mega > a,
  .tc-navigation .tc-has-mega > span,
  .tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
    grid-column:1;
    width:auto;
    min-width:max-content;
    padding-inline-start:clamp(8px,.56vw,11px);
    padding-inline-end:3px;
  }

  .tc-navigation .tc-has-mega > .tc-mega-toggle{
    position:static;
    grid-column:2;
    display:grid;
    width:20px;
    height:44px;
    margin:0;
    padding:0;
    place-items:center;
    align-self:center;
    transform:none;
  }

  .tc-navigation .tc-has-mega > .tc-mega-toggle span{
    width:7px;
    height:7px;
    margin:-4px 0 0;
  }

  .tc-navigation .tc-has-mega.is-open > .tc-mega-toggle span{
    margin:4px 0 0;
  }

  .tc-navigation .tc-has-mega > .tc-mega-panel{
    grid-column:1 / -1;
  }

  .tc-navigation .tc-navigation-menu > ul > li > a::after,
  .tc-navigation .tc-navigation-menu > div > ul > li > a::after,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > a::after{
    right:8px;
    left:8px;
  }
}

@media (min-width:1181px) and (max-width:1320px){
  .tc-navigation > .tc-navigation-menu > ul,
  .tc-navigation > .tc-navigation-menu > div > ul,
  .tc-navigation .tc-navigation-menu ul.mod-menu{
    gap:3px;
  }

  .tc-navigation .tc-navigation-menu > ul > li > a,
  .tc-navigation .tc-navigation-menu > div > ul > li > a,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > a,
  .tc-navigation .tc-navigation-menu > ul > li > span,
  .tc-navigation .tc-navigation-menu > div > ul > li > span,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > span,
  .tc-navigation .tc-navigation-menu > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu > div > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu .nav-header{
    padding-inline:7px;
  }

  .tc-navigation .tc-has-mega > a,
  .tc-navigation .tc-has-mega > span,
  .tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
    padding-inline-start:7px;
    padding-inline-end:2px;
  }
}


/* =========================================================
   Unified desktop mega-item alignment — v1.1.5
   Mega parents use one flex row so the label and arrow remain
   vertically centred. The absolutely positioned panel no longer
   creates an implicit second grid row for the Products item.
   ========================================================= */
@media (min-width:1181px){
  .tc-navigation > .tc-navigation-menu > ul,
  .tc-navigation > .tc-navigation-menu > div > ul,
  .tc-navigation .tc-navigation-menu ul.mod-menu{
    align-items:center;
  }

  .tc-navigation .tc-navigation-menu > ul > li,
  .tc-navigation .tc-navigation-menu > div > ul > li,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li{
    min-height:88px;
    align-items:center;
  }

  .tc-navigation .tc-has-mega{
    display:flex!important;
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:center;
    column-gap:3px;
    min-height:88px;
  }

  .tc-navigation .tc-has-mega > a,
  .tc-navigation .tc-has-mega > span,
  .tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
    display:flex;
    flex:0 0 auto;
    width:auto;
    min-width:max-content;
    min-height:88px;
    align-items:center;
    justify-content:center;
    padding-inline:clamp(8px,.56vw,11px) 0;
    line-height:1.2;
  }

  .tc-navigation .tc-has-mega > .tc-mega-toggle{
    position:static;
    display:grid;
    flex:0 0 15px;
    width:15px;
    height:88px;
    margin:0;
    padding:0;
    place-items:center;
    align-self:center;
    transform:none;
  }

  .tc-navigation .tc-has-mega > .tc-mega-toggle span,
  .tc-navigation .tc-has-mega.is-open > .tc-mega-toggle span{
    width:7px;
    height:7px;
    margin:0;
  }

  .tc-navigation .tc-has-mega > .tc-mega-panel{
    position:absolute;
    top:100%;
    left:50%;
    width:min(calc(100vw - 40px),var(--tc-mega-max-width,1220px));
    transform:translate(-50%,0);
  }

  .tc-navigation .tc-navigation-menu > ul > li > a,
  .tc-navigation .tc-navigation-menu > div > ul > li > a,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > a,
  .tc-navigation .tc-navigation-menu > ul > li > span,
  .tc-navigation .tc-navigation-menu > div > ul > li > span,
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > span,
  .tc-navigation .tc-navigation-menu > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu > div > ul > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu ul.mod-menu > li > button:not(.tc-mega-toggle),
  .tc-navigation .tc-navigation-menu .nav-header{
    align-self:stretch;
    align-items:center;
  }
}

@media (min-width:1181px) and (max-width:1320px){
  .tc-navigation .tc-has-mega > a,
  .tc-navigation .tc-has-mega > span,
  .tc-navigation .tc-has-mega > button:not(.tc-mega-toggle){
    padding-inline-start:7px;
  }
}


/* =========================================================
   Unified mega trigger wrapper — v1.1.7
   Retains the centred v1.1.5 navigation spacing. Products
   (link) and Technical Resources (menu heading) now share the
   exact same label + arrow structure and alignment rules.
   ========================================================= */
@media (min-width:1181px){
  .tc-navigation > .tc-navigation-menu > ul,
  .tc-navigation > .tc-navigation-menu > div > ul,
  .tc-navigation .tc-navigation-menu ul.mod-menu{
    justify-content:center;
    gap:clamp(4px,.45vw,8px);
  }

  .tc-navigation .tc-has-mega{
    display:flex!important;
    min-height:88px;
    align-items:center;
    justify-content:center;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row{
    display:inline-flex;
    min-width:max-content;
    min-height:88px;
    align-items:center;
    justify-content:center;
    gap:5px;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > a,
  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > span,
  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > button:not(.tc-mega-toggle){
    position:relative;
    display:flex;
    flex:0 0 auto;
    width:auto;
    min-width:max-content;
    min-height:88px;
    align-items:center;
    justify-content:center;
    padding:0 0 0 clamp(8px,.56vw,11px);
    border:0;
    background:transparent;
    color:var(--tc-text);
    font-size:clamp(.82rem,.76vw,.91rem);
    font-weight:720;
    line-height:1.2;
    white-space:nowrap;
    text-decoration:none;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > .tc-mega-toggle{
    position:static;
    display:grid;
    flex:0 0 15px;
    width:15px;
    height:88px;
    margin:0 clamp(8px,.56vw,11px) 0 0;
    padding:0;
    border:0;
    background:transparent;
    place-items:center;
    transform:none;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > .tc-mega-toggle span,
  .tc-navigation .tc-has-mega.is-open > .tc-mega-trigger-row > .tc-mega-toggle span{
    display:block;
    width:7px;
    height:7px;
    margin:0;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    color:var(--tc-navy);
    transform:rotate(45deg);
    transition:transform .2s ease;
  }

  .tc-navigation .tc-has-mega.is-open > .tc-mega-trigger-row > .tc-mega-toggle span{
    transform:rotate(225deg);
  }

  .tc-navigation .tc-has-mega:hover > .tc-mega-trigger-row > a,
  .tc-navigation .tc-has-mega:hover > .tc-mega-trigger-row > span,
  .tc-navigation .tc-has-mega:hover > .tc-mega-trigger-row > button:not(.tc-mega-toggle),
  .tc-navigation .tc-has-mega:focus-within > .tc-mega-trigger-row > a,
  .tc-navigation .tc-has-mega:focus-within > .tc-mega-trigger-row > span,
  .tc-navigation .tc-has-mega:focus-within > .tc-mega-trigger-row > button:not(.tc-mega-toggle),
  .tc-navigation .tc-has-mega.current > .tc-mega-trigger-row > a,
  .tc-navigation .tc-has-mega.active > .tc-mega-trigger-row > a{
    color:var(--tc-primary);
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > a::after{
    content:"";
    position:absolute;
    right:0;
    bottom:5px;
    left:clamp(8px,.56vw,11px);
    height:2px;
    background:var(--tc-primary);
    transform:scaleX(0);
    transform-origin:center;
    transition:transform .18s ease;
  }

  .tc-navigation .tc-has-mega.current > .tc-mega-trigger-row > a::after,
  .tc-navigation .tc-has-mega.active > .tc-mega-trigger-row > a::after,
  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > a:hover::after{
    transform:scaleX(1);
  }

  .tc-navigation .tc-has-mega > .tc-mega-panel{
    position:absolute;
    top:100%;
    left:50%;
    width:min(calc(100vw - 40px),var(--tc-mega-max-width,1220px));
    transform:translate(-50%,0);
  }
}

@media (min-width:1181px) and (max-width:1320px){
  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > a,
  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > span,
  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > button:not(.tc-mega-toggle){
    padding-left:7px;
    font-size:.78rem;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > .tc-mega-toggle{
    margin-right:7px;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > a::after{
    left:7px;
  }
}

@media (max-width:1180px){
  .tc-navigation .tc-has-mega{
    display:block!important;
    min-height:0;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row{
    position:relative;
    display:flex;
    width:100%;
    min-height:54px;
    align-items:center;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > a,
  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > span,
  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > button:not(.tc-mega-toggle){
    display:flex;
    flex:1 1 auto;
    min-width:0;
    min-height:54px;
    align-items:center;
    justify-content:flex-start;
    padding:0 64px 0 20px;
    border:0;
    background:transparent;
    color:var(--tc-text);
    font-size:.97rem;
    font-weight:720;
    white-space:normal;
    text-decoration:none;
  }

  .tc-navigation .tc-has-mega > .tc-mega-trigger-row > .tc-mega-toggle{
    position:absolute;
    z-index:3;
    top:7px;
    right:20px;
    display:grid;
    width:40px;
    height:40px;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    place-items:center;
    transform:none;
  }

  html[dir="rtl"] .tc-navigation .tc-has-mega > .tc-mega-trigger-row > a,
  html[dir="rtl"] .tc-navigation .tc-has-mega > .tc-mega-trigger-row > span,
  html[dir="rtl"] .tc-navigation .tc-has-mega > .tc-mega-trigger-row > button:not(.tc-mega-toggle){
    padding:0 20px 0 64px;
  }

  html[dir="rtl"] .tc-navigation .tc-has-mega > .tc-mega-trigger-row > .tc-mega-toggle{
    right:auto;
    left:20px;
  }

  .tc-navigation .tc-has-mega.is-open > .tc-mega-trigger-row > .tc-mega-toggle span{
    margin-top:5px;
    transform:rotate(225deg);
  }
}

/* =========================================================
   Responsive audit fixes — v1.2.0
   - Mobile mega menus become clean accordion submenus.
   - Full-width builder pages have no white strip above the
     first section or below the final section on small screens.
   ========================================================= */
@media (max-width:1180px){
  /* Builder pages must remain edge-to-edge on mobile. The generic
     .tc-main-grid mobile padding previously reintroduced white gaps. */
  body.has-full-width-builder .tc-main,
  body.has-full-width-builder .tc-main-grid.tc-main-grid-full,
  body.has-full-width-builder .tc-main-grid-full > .tc-component,
  body.has-full-width-builder .tc-component,
  body.has-full-width-builder .com-tragbuilder,
  body.has-full-width-builder .com-tragbuilder-page,
  body.has-full-width-builder .tragbuilder-page{
    margin:0!important;
    padding:0!important;
  }

  body.has-full-width-builder .com-tragbuilder-page > .tb-section:first-child,
  body.has-full-width-builder .tragbuilder-page > .tb-section:first-child{
    margin-top:0!important;
  }

  body.has-full-width-builder .com-tragbuilder-page > .tb-section:last-child,
  body.has-full-width-builder .tragbuilder-page > .tb-section:last-child{
    margin:0!important;
    margin-inline:0!important;
    margin-bottom:0!important;
    border-radius:0!important;
  }

  body.has-full-width-builder .com-tragbuilder-page > .tb-section:last-child::before,
  body.has-full-width-builder .com-tragbuilder-page > .tb-section:last-child::after,
  body.has-full-width-builder .tragbuilder-page > .tb-section:last-child::before,
  body.has-full-width-builder .tragbuilder-page > .tb-section:last-child::after{
    border-radius:0!important;
  }

  /* On mobile, keep only a simple submenu list. Desktop mega-menu
     headings, cards and assigned promotional modules stay desktop-only. */
  .tc-navigation .tc-has-mega > .tc-mega-panel{
    position:static!important;
    inset:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0 0 10px!important;
    overflow:visible!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }

  .tc-navigation .tc-has-mega:not(.is-open) > .tc-mega-panel{
    display:none!important;
  }

  .tc-navigation .tc-has-mega.is-open > .tc-mega-panel{
    display:block!important;
  }

  .tc-navigation .tc-mega-panel-inner,
  .tc-navigation .tc-mega-panel-inner.has-modules{
    display:block!important;
    width:100%!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  .tc-navigation .tc-mega-kicker,
  .tc-navigation .tc-mega-links > h2,
  .tc-navigation .tc-mega-modules{
    display:none!important;
  }

  .tc-navigation .tc-mega-links,
  .tc-navigation .tc-mega-links-slot{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }

  .tc-navigation .tc-mega-menu-list,
  .tc-navigation .tc-mega-menu-list.collapse{
    position:static!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:2px 0 6px 20px!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
  }

  html[dir="rtl"] .tc-navigation .tc-mega-menu-list,
  html[dir="rtl"] .tc-navigation .tc-mega-menu-list.collapse{
    padding-right:20px!important;
    padding-left:0!important;
  }

  .tc-navigation .tc-mega-menu-list > li{
    display:block!important;
    width:100%!important;
    margin:0!important;
  }

  .tc-navigation .tc-mega-menu-list > li > a{
    display:flex!important;
    width:100%!important;
    min-height:44px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    padding:9px 20px!important;
    border-left:2px solid rgba(0,174,240,.22)!important;
    color:var(--tc-text)!important;
    font-size:.92rem!important;
    font-weight:650!important;
    line-height:1.35!important;
    white-space:normal!important;
  }

  html[dir="rtl"] .tc-navigation .tc-mega-menu-list > li > a{
    justify-content:flex-end!important;
    border-right:2px solid rgba(0,174,240,.22)!important;
    border-left:0!important;
  }

  .tc-navigation .tc-mega-menu-list > li > a:hover,
  .tc-navigation .tc-mega-menu-list > li.current > a,
  .tc-navigation .tc-mega-menu-list > li.active > a{
    color:var(--tc-primary)!important;
    background:rgba(0,174,240,.06)!important;
  }
}

@media (max-width:620px){
  body.has-full-width-builder .tc-main-grid.tc-main-grid-full{
    padding-block:0!important;
  }

  .tc-navigation.is-open{
    max-height:calc(100dvh - 124px);
  }
}
