/* =========================================
   Modern HubSpot Width Override
   Safe Responsive Version
========================================= */

/* Modern container width */
@media (min-width: 1400px) {

  .container,
  .container-lg,
  .container-md,
  .container-sm,
  .container-xl,
  .container-xxl {

      max-width: min(92vw, 1440px) !important;

  }

}

/* Ultra wide monitors */
@media (min-width: 1800px) {

  .container,
  .container-lg,
  .container-md,
  .container-sm,
  .container-xl,
  .container-xxl {

      max-width: min(90vw, 1700px) !important;

  }

}

/* Better responsive padding */
.container,
.container-lg,
.container-md,
.container-sm,
.container-xl,
.container-xxl {

    padding-left: clamp(20px, 3vw, 48px) !important;
    padding-right: clamp(20px, 3vw, 48px) !important;

}

/* Optional section spacing improvement */
.section-padding {

    padding-top: clamp(70px, 8vw, 140px) !important;
    padding-bottom: clamp(70px, 8vw, 140px) !important;

}

/* =========================================
   HEADER FULL WIDTH FIX
========================================= */

/* Expandir el container SOLO del header */
.header-section .container,
.header-top-bar .container {

    max-width: 100% !important;
    width: 100% !important;

    padding-left: 40px !important;
    padding-right: 40px !important;

}

/* Mejor distribución horizontal */
.header-section .row {

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

}

/* El logo NO necesita ocupar 25% */
.header-logo {

    display: flex;
    align-items: center;

}

.col-xl-3.col-auto {

    flex: 0 0 auto !important;
    width: auto !important;
    max-width: unset !important;

}

/* Menú ocupa el espacio disponible */
.header-main-menu {

    width: 100%;

}

/* Navegación */
.header-main-menu-nav .navigation {

    display: flex !important;
    align-items: right !important;
    justify-content: right !important;

    flex-wrap: nowrap !important;

    gap: clamp(32px, 1.5vw, 40px) !important;

    width: 100%;

    margin: 0 !important;
    padding: 0 !important;

}

/* Links */
.header-main-menu-nav .navigation li a {

    white-space: nowrap !important;

    font-size: clamp(14px, 0.75vw, 14px) !important;

    line-height: 1 !important;

    padding: 0 !important;

}

/* Evitar que el botón se deforme */
.header-right {

    flex: 0 0 auto;

}

/* Responsive */
@media (max-width: 1600px) {

    .header-section .container,
    .header-top-bar .container {

        padding-left: 28px !important;
        padding-right: 28px !important;

    }

    .header-main-menu-nav .navigation {

        gap: 32px !important;

    }

}

@media (max-width: 1400px) {

    .header-main-menu-nav .navigation li a {

        font-size: 14px !important;

    }

    .header-main-menu-nav .navigation {

        gap: 40px !important;

    }

}
/* =========================================
   Perfect Menu Vertical Alignment
========================================= */

.header-main-menu-nav .navigation {

    display: flex !important;
    align-items: center !important;

}

/* Todos los items */
.header-main-menu-nav .navigation > li {

    display: flex !important;
    align-items: center !important;

}

/* Todos los links */
.header-main-menu-nav .navigation > li > a {

    display: flex !important;
    align-items: center !important;

    line-height: 1 !important;

}

/* Item con submenu */
.header-main-menu-nav .has-sub-menu > a {

    gap: 6px;

}

/* Flecha */
.header-main-menu-nav .has-sub-menu > a::after {

    position: relative;
    top: 0;

}
/* =========================================
   Modern Dropdown Menu
========================================= */

/* Parent item */
.header-main-menu-nav .has-sub-menu {

    position: relative;

}

/* Fix broken arrow icon */
.header-main-menu-nav .has-sub-menu > a::after {

    content: "⌄" !important;

    font-size: 14px;
    font-weight: 600;

    border: none !important;
    background: none !important;

    display: flex;
    align-items: center;
    justify-content: center;

    width: auto;
    height: auto;

    margin-left: 4px;

    position: relative;
    top: -2px;

    transition: transform .25s ease;

}

/* Rotate arrow on hover */
.header-main-menu-nav .has-sub-menu:hover > a::after {

    transform: rotate(180deg);
    top: 3px;

}

/* Dropdown container */
.header-main-menu-nav .has-sub-menu > ul {

    position: absolute;

    top: calc(100% + 18px);
    left: 50%;

    transform: translateX(-50%);

    min-width: 260px;

    padding: 14px !important;

    background: #ffffff !important;

    border-radius: 16px;

    box-shadow:
      0 10px 30px rgba(0,0,0,.08),
      0 2px 8px rgba(0,0,0,.04);

    border: 1px solid rgba(0,0,0,.06);

    opacity: 0;
    visibility: hidden;

    transition:
      opacity .25s ease,
      transform .25s ease;

    z-index: 999;

}

/* Show dropdown */
.header-main-menu-nav .has-sub-menu:hover > ul {

    opacity: 1;
    visibility: visible;

    transform: translateX(-50%) translateY(-4px);

}

/* Dropdown items */
.header-main-menu-nav .has-sub-menu > ul li {

    width: 100%;

}

/* Dropdown links */
.header-main-menu-nav .has-sub-menu > ul li a {

    display: flex !important;
    align-items: center;

    width: 100%;

    padding: 12px 14px !important;

    border-radius: 10px;

    color: #222 !important;

    font-size: 14px !important;

    transition: all .2s ease;

}

/* Hover effect */
.header-main-menu-nav .has-sub-menu > ul li a:hover {

    background: #f5f7fa;

    transform: translateX(4px);

    color: var(--primary-color) !important;

}
/* =========================================
   Mobile Menu Fix
========================================= */

.offcanvas-menu-nav .navigation {

    display: flex;
    flex-direction: column;

    gap: 0 !important;

    padding: 0;
    margin: 0;

}

.offcanvas-menu-nav .navigation li {

    width: 100%;

}

.offcanvas-menu-nav .navigation li a {

    display: block;

    width: 100%;

    padding: 14px 0 !important;

    border-bottom: 1px solid rgba(0,0,0,.08);

    font-size: 16px !important;

    color: #222 !important;

}

.offcanvas-menu-nav .has-sub-menu > ul {

    position: static !important;

    opacity: 1 !important;
    visibility: visible !important;

    transform: none !important;

    box-shadow: none !important;

    border: none !important;

    background: transparent !important;

    padding-left: 16px !important;

    margin-top: 8px;

}

.offcanvas-menu-nav .has-sub-menu > a::after {

    display: none !important;

}
/* =========================================
   Mobile Menu Text Visibility
========================================= */

.header-offcanvas {

    background: #ffffff !important;

}

/* Main links */
.offcanvas-menu-nav .navigation li a {

    color: #33475b !important;

    font-weight: 200;

}

/* Hover */
.offcanvas-menu-nav .navigation li a:hover {

    color: var(--primary-color) !important;

}

/* Submenu container */
.offcanvas-menu-nav .has-sub-menu > ul {

    background: #f8f9fa !important;

    border-radius: 12px;

    padding: 8px 14px !important;

    margin-top: 10px;

}

/* Submenu links */
.offcanvas-menu-nav .has-sub-menu > ul li a {

    color: #33475b !important;

    font-size: 15px !important;

    padding: 10px 0 !important;

}

/* Close button */
.header-offcanvas-close {

    color: #ffffff !important;

}

/* Hamburger icon lines */
.header-offcanvas-open span {

    background: #33475b !important;

}
/* =========================================
   Remove Forced Uppercase
========================================= */

.offcanvas-menu-nav .navigation li a {

    text-transform: none !important;

}
/* =========================================
   Mobile Submenu Toggle
========================================= */

.offcanvas-menu-nav .has-sub-menu > ul {

    display: none;

}

.offcanvas-menu-nav .has-sub-menu > ul.submenu-open {

    display: block;

}

/* =========================================
   editorial line right
========================================= */


.editorial-text {

  position: relative;

  display: inline-block;

  padding-right: 1.5rem;

  line-height: 1.5;

  max-width: 40ch;
}

.editorial-text::after {

  content: "";

  position: absolute;

  top: 10%;

  bottom: 10%;

  right: 0;

  width: 1px;

  background: #808080;
}
/* =========================================
   Wider Content Layout
========================================= */

.container,
.content-wrapper,
.page-center {

    width: 100% !important;
    max-width: min(1600px, calc(100vw - 80px)) !important;
    margin-inline: auto !important;