*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Arial,Helvetica,sans-serif;background:#fff}

.site-header{
  position:relative;
  width:100%;
  height:125px;
  overflow:visible;
  background:#031b36;
}

.photo-layer{
  position:absolute;
  inset:0;
  background-image:url("../assets/common/rectifier-line.jpg");
  background-size:cover;
  background-position:center 43%;
  opacity:.34;
}

.dark-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,
    rgba(2,21,45,.98) 0%,
    rgba(3,28,58,.94) 25%,
    rgba(4,34,69,.79) 58%,
    rgba(2,21,45,.90) 100%);
}

.header-inner{
  position:relative;
  z-index:3;
  width:min(1880px,99%);
  height:100%;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:16px;
}

.logo{
  width:300px;
  flex:0 0 300px;
  display:flex;
  align-items:center;
  height:100%;
  overflow:hidden;
}

.logo img{
  width:290px;
  height:auto;
  display:block;
}

.main-nav{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
}

.nav-dropdown{position:relative}

.nav-tab{
  position:relative;
  min-width:104px;
  height:50px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  color:#fff;
  text-decoration:none;
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
  background:linear-gradient(180deg,rgba(8,39,73,.92),rgba(2,21,44,.96));
  border:1px solid rgba(77,146,225,.20);
  clip-path:polygon(10% 0,100% 0,90% 100%,0 100%);
  box-shadow:0 8px 18px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.05);
  transition:.2s ease;
}

.nav-tab::after{
  content:"";
  position:absolute;
  left:11%;
  right:11%;
  bottom:0;
  height:3px;
  background:#087cff;
  box-shadow:0 0 6px #087cff,0 0 13px rgba(8,124,255,.72);
  opacity:.8;
}

.nav-tab::before{
  content:"";
  position:absolute;
  width:54px;
  height:12px;
  top:-5px;
  left:50%;
  transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(255,255,255,.55) 0%,rgba(40,137,255,.16) 43%,rgba(0,0,0,0) 75%);
  opacity:.72;
}

.nav-tab:hover{
  color:#50aaff;
  transform:translateY(-2px);
}

.nav-tab.active{color:#38a1ff}
.nav-tab.active::after{height:4px;opacity:1}
.nav-tab.wide{min-width:195px}


.dropdown-menu{
  display:none;
  position:absolute;
  top:50px;
  left:7px;
  width:240px;
  padding:8px 0;
  background:rgba(2,25,51,.98);
  border:1px solid rgba(46,118,197,.32);
  box-shadow:0 12px 24px rgba(0,0,0,.40);
  z-index:20;
}

.dropdown-menu a{
  display:block;
  padding:12px 17px;
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
}

.dropdown-menu a:hover{
  background:rgba(14,82,146,.48);
  color:#54b5ff;
}

.nav-dropdown:hover .dropdown-menu{display:block}

.menu-button{
  display:none;
  width:44px;
  height:44px;
  border:0;
  background:transparent;
  cursor:pointer;
}

.menu-button span{
  display:block;
  width:28px;
  height:3px;
  background:#fff;
  margin:5px auto;
}

.mobile-nav{
  display:none;
  position:relative;
  z-index:25;
  background:#031d3b;
  padding:8px 24px 20px;
}

.mobile-nav a{
  display:block;
  padding:13px 0;
  color:#fff;
  text-decoration:none;
  font-weight:700;
  border-bottom:1px solid rgba(255,255,255,.12);
}

.mobile-nav.open{display:block}

@media(max-width:1500px){
  .logo{width:320px;flex-basis:320px}
  .logo img{width:310px}
  .header-inner{gap:20px}
  .main-nav{gap:5px}
  .nav-tab{min-width:105px;padding:0 15px;font-size:13px}
  .nav-tab.wide{min-width:165px}
}

@media(max-width:1050px){
  .site-header{height:120px}
  .header-inner{padding:0 16px;justify-content:space-between}
  .logo{width:280px;flex-basis:280px}
  .logo img{width:270px}
  .main-nav{display:none}
  .menu-button{display:block}
}


/* ===== FINAL HEADER ADJUSTMENTS =====
   New transparent logo + menu moved left
*/
.header-inner{
  width:100%;
  max-width:none;
  padding:0 22px;
  gap:12px;
}

.logo{
  width:285px !important;
  flex:0 0 285px !important;
  height:100%;
  overflow:visible;
}

.logo img{
  width:275px !important;
  height:auto;
  object-fit:contain;
}

.main-nav{
  justify-content:flex-start !important;
  gap:4px !important;
  margin-left:4px;
}

.nav-tab{
  min-width:96px !important;
  height:48px !important;
  padding:0 12px !important;
  font-size:12px !important;
}

.nav-tab.wide{
  min-width:150px !important;
}

.dropdown-menu{
  top:48px !important;
}

@media (min-width:1501px){
  .logo{
    width:315px !important;
    flex-basis:315px !important;
  }
  .logo img{width:305px !important;}
  .nav-tab{
    min-width:105px !important;
    padding:0 14px !important;
    font-size:13px !important;
  }
  .nav-tab.wide{min-width:165px !important;}
}


/* =========================================================
   CORRECCION FINAL DE MENUS DESPLEGABLES
   ========================================================= */

/* Flecha limpia creada con CSS — no agrega ninguna letra extra */
.nav-tab.has-caret {
  padding-right: 25px !important;
}

.nav-tab.has-caret > span:first-child {
  display: inline-block;
}

.nav-tab.has-caret::marker {
  content: "";
}

.nav-tab.has-caret .chevron {
  display: none !important;
}

/* Caret separado del efecto ::after azul del botón */
.nav-tab.has-caret span:first-child::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 8px;
  vertical-align: middle;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #ffffff;
  transform: translateY(-1px);
}

/* Los dos menús usan exactamente el mismo comportamiento */
.nav-dropdown {
  position: relative;
  z-index: 100;
}

.nav-dropdown .dropdown-menu {
  display: none;
  position: absolute;
  top: 48px !important;
  left: 0;
  width: 240px;
  padding: 8px 0;
  background: rgba(2,25,51,.99);
  border: 1px solid rgba(46,118,197,.40);
  box-shadow: 0 12px 24px rgba(0,0,0,.45);
  z-index: 9999;
}

/* Puente invisible para que el menú no se cierre al mover el mouse */
.nav-dropdown .dropdown-menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -8px;
  height: 8px;
}

.nav-dropdown:hover .dropdown-menu,
.nav-dropdown:focus-within .dropdown-menu {
  display: block !important;
}

.nav-dropdown .dropdown-menu a {
  display: block;
  padding: 12px 17px;
  color: #ffffff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}

.nav-dropdown .dropdown-menu a:hover {
  background: rgba(14,82,146,.55);
  color: #54b5ff;
}

.about-menu {
  width: 175px !important;
}

/* Asegura que el header no recorte los submenus */
.site-header,
.header-inner,
.main-nav {
  overflow: visible !important;
}


/* ===== MENU POSITION: more space from logo ===== */
@media (min-width:901px){
  .main-nav{
    margin-left:70px !important;
  }
}
@media (min-width:1501px){
  .main-nav{
    margin-left:90px !important;
  }
}



/* =========================================================
   TBR FINAL FIXES - 2026-08-20
   Clean dropdown alignment + one blue dash per item
   ========================================================= */

@media (min-width:1051px){
  .header-inner{
    padding-left:22px !important;
    padding-right:34px !important;
  }
  .logo{
    width:365px !important;
    flex-basis:365px !important;
  }
  .logo img{
    width:355px !important;
  }
  .main-nav{
    justify-content:center !important;
    margin-left:0 !important;
    gap:32px !important;
  }
}

/* All dropdown links use the same alignment */
.nav-dropdown .dropdown-menu a{
  position:relative;
  display:block;
  padding:12px 18px 12px 36px !important;
  text-align:left !important;
  white-space:nowrap;
  line-height:1.25;
}

/* Exactly one blue dash before every submenu item */
.nav-dropdown .dropdown-menu a::before,
.equipment-menu .submenu-item::before{
  content:"" !important;
  position:absolute !important;
  left:18px !important;
  top:50% !important;
  width:8px !important;
  height:2px !important;
  margin:0 !important;
  background:#168cff !important;
  transform:translateY(-50%) !important;
  box-shadow:0 0 5px rgba(22,140,255,.8);
}

/* Services menu: wide enough and all items start at the same point */
.main-nav > .nav-dropdown:first-of-type .dropdown-menu{
  width:330px !important;
  left:50% !important;
  transform:translateX(-50%);
}
.main-nav > .nav-dropdown:first-of-type .dropdown-menu a{
  padding-left:36px !important;
  padding-right:18px !important;
  text-align:left !important;
}

/* Equipment and About widths */
.equipment-menu{width:245px !important;}
.about-menu{width:175px !important;}

/* Center the desktop navigation group within the header */
@media (min-width: 1301px){
  .header-inner{
    position:relative;
  }
  .main-nav{
    position:absolute;
    left:46%;
    transform:translateX(-50%);
    flex:none;
    width:max-content;
    justify-content:center;
    gap:32px !important;
  }
}


/* ==========================================================
   TBR RECTIFIER TECH - COMPACT FOOTER
   ========================================================== */

* { box-sizing: border-box; }

.tbr-footer {
  font-family: Arial, Helvetica, sans-serif;
}

.tbr-footer {
  width: 100%;
  color: #fff;
  background: #021b36;

  /* Reset page-level generic footer rules so the shared footer
     always stacks vertically and keeps its full natural height. */
  display: block;
  height: auto;
  min-height: 0;
  padding: 0;
  margin: 0;
  align-items: initial;
  justify-content: initial;
}

/* ---------- TOP CTA: intentionally compact ---------- */
.footer-cta {
  position: relative;
  min-height: 235px;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,.25);
}

.footer-photo {
  position: absolute;
  inset: 0;
  background: url("../assets/common/footer-industrial-bg.png") center 29% / cover no-repeat;
  opacity: .25;
  filter: saturate(.65);
}

.footer-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    rgba(1,18,38,.95) 0%,
    rgba(2,26,52,.88) 48%,
    rgba(1,20,42,.94) 100%);
}

.cta-inner {
  position: relative;
  z-index: 2;
  width: min(1380px, 92%);
  min-height: 235px;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 70px;
  padding: 26px 0;
}

.cta-title h2 {
  margin: 0;
  font-size: clamp(32px, 3.1vw, 48px);
  line-height: 1.08;
  letter-spacing: .5px;
}

.blue-line,
.small-line {
  display: block;
  background: #087cff;
}

.blue-line {
  width: 72px;
  height: 5px;
  margin-top: 22px;
}

.cta-action h3 {
  margin: 0 0 12px;
  font-size: clamp(23px, 2vw, 31px);
  line-height: 1.18;
}

.cta-action p {
  margin: 0;
  font-size: 18px;
  line-height: 1.45;
}

.cta-buttons {
  display: flex;
  gap: 22px;
  margin-top: 20px;
}

.footer-btn {
  min-height: 50px;
  padding: 0 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  text-decoration: none;
  color: #fff;
  font-weight: 800;
  font-size: 14px;
  border-radius: 3px;
  transition: .2s ease;
}

.footer-btn span { font-size: 25px; }

.btn-primary {
  background: #075ee8;
  border: 2px solid #075ee8;
}

.btn-outline {
  background: rgba(0,0,0,.08);
  border: 2px solid rgba(255,255,255,.85);
}

.footer-btn:hover { transform: translateY(-2px); }

/* ---------- LINKS AREA ---------- */
.footer-links {
  background: linear-gradient(90deg,#031d39,#02162d);
  border-bottom: 1px solid rgba(255,255,255,.20);
}

.links-inner {
  width: min(1380px, 92%);
  margin: auto;
  padding: 25px 0 22px;
  display: grid;
  grid-template-columns: 1.35fr .8fr 1fr 1.15fr;
  gap: 55px;
  align-items: start;
}

.footer-brand {
  min-height: 145px;
  display: flex;
  align-items: center;
}

.footer-brand img {
  width: min(310px, 100%);
  height: auto;
  display: block;
}

.footer-column h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
}

.small-line {
  width: 38px;
  height: 3px;
  margin: 9px 0 13px;
}

.footer-column a,
.footer-column p {
  display: block;
  margin: 0 0 9px;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.25;
}

.footer-column a:hover { color: #49a8ff; }

.contact-column a,
.contact-column p {
  margin-bottom: 15px;
}

.contact-column b {
  display: inline-block;
  width: 25px;
  color: #fff;
}

/* ---------- COPYRIGHT ---------- */
.copyright {
  min-height: 42px;
  padding: 11px 20px;
  text-align: center;
  font-size: 13px;
  background: #02162d;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 900px) {
  .cta-inner {
    grid-template-columns: 1fr;
    gap: 25px;
    padding: 35px 0;
  }

  .cta-buttons { flex-wrap: wrap; }

  .links-inner {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .footer-brand { min-height: auto; }
}

@media (max-width: 560px) {
  .links-inner { grid-template-columns: 1fr; }
  .cta-buttons { flex-direction: column; }
  .footer-btn { width: 100%; }
}
