:root{
  --color-texto: #2b2b2b;
  --color-cta: #a31f36;
  --color-cta-hover: #7f1829;
  --color-acento: #a31f36;
  --color-borde: #e5e5e5;
  --max-width: 1200px;
}

.header_style{
  width:100%;
  background:#fff;
  border-bottom:1px solid var(--color-borde);
  position: sticky;
  top:0;
  z-index: 999;
}
.header_style .grid-container{
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 15px;
}

/* fila superior: logo + CTA + teléfono */
.header_style .top-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  padding: 15px 0;
  gap: 15px;
}
.header_style .top-row .logo img{
  display:block;
  width: 320px;
  height:auto;
}
.header_style .top-row .actions{
  display:flex;
  align-items:center;
  gap: 15px;
  flex-wrap:wrap;
}

.header_style .sowb-button{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 12px 22px;
  background: var(--color-cta);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  font-size: 14px;
  letter-spacing: .5px;
  border-radius: 3px;
  transition: background .2s ease;
  white-space: nowrap;
}
.header_style .sowb-button:hover{ background: var(--color-cta-hover); }
.header_style .sowb-button.phone{
  background: transparent;
  color: var(--color-texto);
  font-size: 16px;
  padding: 8px 0;
}
.header_style .sowb-button.phone::before{
  content:"";
  display:inline-block;
  width:21px;
  height:21px;
  flex-shrink:0;
  background-color: #000000;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 2v16h10V4H7zm5 14.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 2v16h10V4H7zm5 14.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

/* menú de navegación */
.header_style nav.main-menu{
  border-top:1px solid var(--color-borde);
}
.header_style nav.main-menu ul.menu{
  list-style:none;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  margin:0;
  padding:0;
}
.header_style nav.main-menu ul.menu > li{
  position:relative;
}
.header_style nav.main-menu ul.menu > li > a{
  display:block;
  padding: 14px 16px;
  color: var(--color-texto);
  text-decoration:none;
  font-size: 16px;
  font-weight:400;
  text-align:center;
  line-height:1.2;
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
}
.header_style nav.main-menu ul.menu > li > a:hover{
  color: var(--color-cta);
}
.header_style nav.main-menu ul.menu > li.menu-item-has-children > a::after{
  content:" \25BE";
  font-size:10px;
}

/* contenedores: aseguramos que nada corte el dropdown */
.header_style,
.header_style .grid-container,
.header_style nav.main-menu,
.header_style nav.main-menu ul.menu,
.header_style nav.main-menu ul.menu > li{
  overflow: visible !important;
}

/* submenús — !important para ganarle a CSS del tema que suele traer sus propias reglas de .sub-menu */
.header_style nav.main-menu ul.menu li.menu-item-has-children{
  position: relative !important;
}
.header_style nav.main-menu ul.sub-menu{
  list-style: none !important;
  margin: 0 !important;
  padding: 8px 0 !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  min-width: 240px !important;
  background: #a31f36 !important;
  border: 1px solid #a31f36;
  box-shadow: 0 6px 16px rgba(0,0,0,.08) !important;
  display: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 1000 !important;
}
.header_style nav.main-menu li.menu-item-has-children:hover > ul.sub-menu,
.header_style nav.main-menu li.menu-item-has-children.js-open > ul.sub-menu{
  display: block !important;
}
.header_style nav.main-menu ul.sub-menu li{
  position: relative !important;
}
.header_style nav.main-menu ul.sub-menu li a{
  display: block !important;
  padding: 10px 16px !important;
  color: white !important;
  text-decoration: none !important;
  font-size: 14px !important;
  white-space: nowrap !important;
}
.header_style nav.main-menu ul.sub-menu li a:hover{
  background:#f5f5f5 !important;
  color: var(--color-cta) !important;
}

/* mobile */
.header_style .menu-toggle{
  display:none;
  background:none;
  border:none;
  font-size:26px;
  cursor:pointer;
}
@media (max-width: 900px){
  .header_style .menu-toggle{ display:none; }
  .header_style nav.main-menu{
    display:none;
    border-top:1px solid var(--color-borde);
  }
  .header_style nav.main-menu.open{ display:block; }
  .header_style nav.main-menu ul.menu{
    flex-direction:column;
  }
  .header_style nav.main-menu ul.sub-menu{
    position:static;
    display:none;
    border:none;
    box-shadow:none;
    padding-left: 16px;
  }
  .header_style nav.main-menu li.menu-item-has-children.open > ul.sub-menu{
    display:block;
  }
}