/* DreamCode Thành Vinh Header — scoped, responsive, Elementor-safe. */
.dc-tvh {
  --dc-tvh-content-width: 1320px;
  --dc-tvh-logo-width: 360px;
  --dc-tvh-menu-gap: 46px;
  --dc-tvh-nav: #080977;
  --dc-tvh-nav-active: #080977;
  --dc-tvh-sub: #151515;
  --dc-tvh-sub-active: #c8010a;
  --dc-tvh-sub-active-bg: #fcf1ed;
  --dc-tvh-phone: #c8010a;
  --dc-tvh-top-start: #051a53;
  --dc-tvh-top-end: #2d378e;
  --dc-tvh-main-bg: #fff;
  --dc-tvh-sticky-offset: 0px;
  --dc-tvh-inline-pad: 20px;
  --dc-tvh-topbar-height: 56px;
  --dc-tvh-main-height: 120px;
  --dc-tvh-logo-height: 80px;
  --dc-tvh-main-gap: 18px;
  --dc-tvh-topbar-gap: 20px;
  --dc-tvh-mobile-width: 390px;
  --dc-tvh-call-size: 48px;
  --dc-tvh-dropdown-width: 360px;
  --dc-tvh-dropdown-radius: 12px;
  --dc-tvh-dropdown-pad: 12px;
  --dc-tvh-sub-row-radius: 12px;
  --dc-tvh-underline-height: 2px;
  --dc-tvh-underline-bottom: 31px;
  --dc-tvh-animation-ms: 240ms;
  --dc-tvh-sub-slide: 17px;
  --dc-tvh-email-icon-size: 16px;
  --dc-tvh-phone-icon-size: 25px;
  --dc-tvh-dropdown-icon-size: 14px;
  --dc-tvh-item-icon-size: 18px;
  --dc-tvh-mobile-icon-size: 25px;
  --dc-tvh-icon-gap: 8px;
  --dc-tvh-call-border-width: 1px;
  --dc-tvh-email-color: #fff;
  --dc-tvh-nav-icon-color: #080977;
  --dc-tvh-sub-icon-color: #151515;
  --dc-tvh-sub-icon-active: #c8010a;
  --dc-tvh-dropdown-bg: #fff;
  --dc-tvh-underline-color: #080977;
  --dc-tvh-call-color: #a92021;
  --dc-tvh-call-bg: #fffafa;
  --dc-tvh-call-bg-hover: #fbecec;
  --dc-tvh-call-border: #e9c8c8;
  --dc-tvh-mobile-icon-color: #080977;
  --dc-tvh-mobile-button-bg: #fff;
  --dc-tvh-mobile-panel-bg: #fff;
  --dc-tvh-mobile-backdrop: #010623;
  position: relative;
  z-index: 80;
  width: 100%;
  max-width: 100%;
  background: var(--dc-tvh-main-bg);
  box-shadow: 0 4px 12px rgb(0 0 0 / 8%);
  color: var(--dc-tvh-nav);
  font-family: Montserrat, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  isolation: isolate;
  margin: 0;
  padding: 0;
}
.dc-tvh,
.dc-tvh *,
.dc-tvh *::before,
.dc-tvh *::after { box-sizing: border-box; }
.dc-tvh * { min-width: 0; }
.dc-tvh img, .elementor .dc-tvh img { display: block; max-width: 100%; }
.dc-tvh svg { display: block; width: 100%; height: 100%; }
.dc-tvh :is(a, button, span) { -webkit-tap-highlight-color: transparent; }
.dc-tvh a { text-decoration: none; }
.dc-tvh--sticky { position: sticky; top: var(--dc-tvh-sticky-offset); }
.dc-tvh.is-menu-open { z-index: 100000; }
.dc-tvh__inner { width: min(100% - (2 * var(--dc-tvh-inline-pad)), var(--dc-tvh-content-width)); margin-inline: auto; max-width: 100%; }
.dc-tvh__topbar {
  background: linear-gradient(105deg, var(--dc-tvh-top-start), var(--dc-tvh-top-end) 94.79%);
  color: #fff;
}
/* Topbar content never changes text size at a device breakpoint. With multiple
   extra items, wrap the ROW, not individual glyphs or the icon. */
.dc-tvh__topbar-inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end;
  min-height: var(--dc-tvh-topbar-height); padding-block: 8px;
  column-gap: var(--dc-tvh-topbar-gap); row-gap: 8px;
}
.dc-tvh a.dc-tvh__email,
.dc-tvh a.dc-tvh__email:hover,
.dc-tvh a.dc-tvh__email:focus-visible {
  display: inline-flex; flex: 0 1 auto; align-items: center; gap: 9px; min-width: 0; max-width: 100%;
  font-size: 16px; font-weight: 500; line-height: 1.5; color: var(--dc-tvh-email-color); text-decoration: none;
  white-space: normal; overflow-wrap: anywhere;
}
.dc-tvh__email > span:last-child { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.dc-tvh__email strong { font-weight: 600; }
.dc-tvh__email-icon { flex: 0 0 var(--dc-tvh-email-icon-size); width: var(--dc-tvh-email-icon-size); height: var(--dc-tvh-email-icon-size); }
.dc-tvh__email-icon svg { stroke-width: 1.6; }
.dc-tvh__main { background: var(--dc-tvh-main-bg); }
.dc-tvh__main-inner { min-height: var(--dc-tvh-main-height); display: flex; align-items: center; justify-content: space-between; gap: var(--dc-tvh-main-gap); }
.dc-tvh a.dc-tvh__brand {
  display: block; flex: 0 1 var(--dc-tvh-logo-width); width: var(--dc-tvh-logo-width);
  min-width: 0; max-width: 100%; color: inherit; text-decoration: none;
}
.dc-tvh a.dc-tvh__brand img,
.elementor .dc-tvh a.dc-tvh__brand img {
  width: 100%; height: auto; max-width: 100%; max-height: var(--dc-tvh-logo-height); object-fit: contain; object-position: left center;
}
/* Center the desktop navigation in the space between brand and hotline. */
.dc-tvh__navigation-shell { min-width: 0; flex: 1 1 auto; align-self: stretch; display: flex; justify-content: center; }
.dc-tvh__nav { display: flex; align-items: stretch; min-width: 0; max-width: 100%; }
.dc-tvh__menu,
.dc-tvh__submenu { padding: 0; margin: 0; list-style: none; }
.dc-tvh__menu { display: flex; align-items: stretch; justify-content: center; gap: var(--dc-tvh-menu-gap); }
.dc-tvh__item { position: relative; min-width: 0; }
.dc-tvh__item--top { display: flex; align-items: stretch; flex: 0 1 auto; }
.dc-tvh__entry { position: relative; display: flex; align-items: center; min-width: 0; }
.dc-tvh__item--top > .dc-tvh__entry { min-height: 100%; }
.dc-tvh .dc-tvh__nav-link,
.dc-tvh .dc-tvh__nav-label {
  position: relative; display: inline-flex; align-items: center; gap: var(--dc-tvh-icon-gap); min-height: 48px;
  max-width: 100%; padding: 8px 0; margin: 0;
  color: var(--dc-tvh-nav); font-family: inherit; font-size: 18px;
  font-weight: 600; line-height: 1.3; text-transform: uppercase;
  letter-spacing: 0; text-decoration: none; text-align: left;
  overflow-wrap: anywhere;
}
.dc-tvh .dc-tvh__nav-link:hover,
.dc-tvh .dc-tvh__nav-link:focus-visible,
.dc-tvh .dc-tvh__item--top:hover > .dc-tvh__entry :is(.dc-tvh__nav-link, .dc-tvh__nav-label),
.dc-tvh .dc-tvh__item--top:is(.is-current, .is-current-ancestor, .is-expanded) > .dc-tvh__entry :is(.dc-tvh__nav-link, .dc-tvh__nav-label) { color: var(--dc-tvh-nav-active); }
.dc-tvh__item--top > .dc-tvh__entry::after {
  content: ''; position: absolute; height: var(--dc-tvh-underline-height); border-radius: 2px; background: var(--dc-tvh-underline-color);
  bottom: var(--dc-tvh-underline-bottom); left: 8px; right: 8px; opacity: 0; transform: scaleX(.52);
  pointer-events: none; transition: opacity .2s ease, transform .25s cubic-bezier(.2,.8,.2,1);
}
.dc-tvh__item--top:is(:hover, :focus-within, .is-expanded, .is-current, .is-current-ancestor) > .dc-tvh__entry::after { opacity: 1; transform: scaleX(1); }
/* Desktop reference is single line at ordinary label lengths. Long dynamic
   titles remain wrappable (and never clipped) via a class set by PHP render. */
@media (min-width: 1200px) {
  .dc-tvh .dc-tvh__item--top:not(.dc-tvh__item--long) > .dc-tvh__entry > :is(.dc-tvh__nav-link,.dc-tvh__nav-label) > span:not(.dc-tvh__icon) { white-space: nowrap; }
  .dc-tvh a.dc-tvh__phone-value--short { white-space: nowrap; }
}
/* Reset icon BUTTON states more specifically than Elementor/theme globals. */
.dc-tvh button.dc-tvh__submenu-toggle,
.dc-tvh button.dc-tvh__menu-button,
.dc-tvh button.dc-tvh__close,
.dc-tvh button.dc-tvh__submenu-toggle:is(:hover,:focus,:active),
.dc-tvh button.dc-tvh__menu-button:is(:hover,:focus,:active),
.dc-tvh button.dc-tvh__close:is(:hover,:focus,:active) {
  -webkit-appearance: none; appearance: none;
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  border: 0 !important; outline-offset: 3px; border-radius: 0;
  margin: 0; padding: 0;
  background: transparent !important; background-color: transparent !important;
  background-image: none !important; box-shadow: none !important;
  color: var(--dc-tvh-nav) !important; font-family: inherit; font-size: inherit; font-weight: inherit;
  line-height: 1; cursor: pointer; text-shadow: none; text-decoration: none;
  transition: color .2s ease;
}
.dc-tvh button.dc-tvh__submenu-toggle { width: 26px; min-height: 48px; margin-left: 4px; }
.dc-tvh__submenu-toggle .dc-tvh__arrow-icon { width: var(--dc-tvh-dropdown-icon-size); height: var(--dc-tvh-dropdown-icon-size); transition: transform .22s ease; }
.dc-tvh__item:is(:hover, :focus-within, .is-expanded) > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon { transform: none; }
.dc-tvh .dc-tvh__item--top:is(:hover, .is-current, .is-expanded) > .dc-tvh__entry > .dc-tvh__submenu-toggle { color: var(--dc-tvh-nav-active); }
.dc-tvh button:focus-visible,
.dc-tvh a:focus-visible { outline: 2px solid var(--dc-tvh-nav-active); outline-offset: 3px; }
.dc-tvh__flyout {
  position: absolute; z-index: 9; top: calc(100% - 2px); left: -12px;
  width: var(--dc-tvh-dropdown-width); min-width: min(220px, calc(100vw - 24px)); max-width: min(var(--dc-tvh-dropdown-width), calc(100vw - 24px));
  visibility: hidden; opacity: 0; pointer-events: none;
  background: var(--dc-tvh-dropdown-bg); border-radius: 0 0 var(--dc-tvh-dropdown-radius) var(--dc-tvh-dropdown-radius); box-shadow: 0 4px 12px rgb(0 0 0 / 15%);
  transform: translateY(-6px); transition: opacity var(--dc-tvh-animation-ms) ease, transform var(--dc-tvh-animation-ms) cubic-bezier(.22,1,.36,1), visibility 0s linear var(--dc-tvh-animation-ms);
}
.dc-tvh__item--sub > .dc-tvh__flyout { top: -10px; left: calc(100% - 1px); border-radius: var(--dc-tvh-dropdown-radius); }
.dc-tvh__item--sub.dc-tvh__flip > .dc-tvh__flyout { left: auto; right: calc(100% - 1px); }
.dc-tvh__item:is(:hover,:focus-within,.is-expanded) > .dc-tvh__flyout {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
  transition: opacity var(--dc-tvh-animation-ms) ease, transform var(--dc-tvh-animation-ms) cubic-bezier(.22,1,.36,1), visibility 0s;
}
.dc-tvh__submenu { display: flex; flex-direction: column; gap: 0; padding: var(--dc-tvh-dropdown-pad) 8px; }
/* Reference Sub-menu.svg: item glyphs slide +17px, a red dot arrives, and
   the tinted background sweeps left-to-right ACROSS THE ENTIRE ROW (incl. toggle).
   Layout dimensions never animate, so icon/text never collide or cause CLS. */
.dc-tvh__item--sub > .dc-tvh__entry {
  position: relative; isolation: isolate;
  display: flex; align-items: center; width: 100%; min-width: 0;
  border-radius: var(--dc-tvh-sub-row-radius); background: transparent;
}
.dc-tvh__item--sub > .dc-tvh__entry::before {
  content: ''; position: absolute; z-index: -1; inset: 0;
  border-radius: inherit; background: var(--dc-tvh-sub-active-bg);
  opacity: 0; transform: scaleX(0); transform-origin: left center;
  pointer-events: none;
  transition: transform var(--dc-tvh-animation-ms) cubic-bezier(.22,1,.36,1),
              opacity var(--dc-tvh-animation-ms) ease;
}
.dc-tvh .dc-tvh__sub-link,
.dc-tvh .dc-tvh__sub-label {
  position: relative; display: inline-flex; align-items: center;
  flex: 1 1 auto; width: auto; min-width: 0; min-height: 48px;
  /* Reserve the rightward travel inside the clickable content; no clipping. */
  padding: 10px calc(12px + var(--dc-tvh-sub-slide)) 10px 12px;
  margin: 0; border-radius: 0;
  color: var(--dc-tvh-sub); background: transparent;
  font-family: inherit; font-size: 16px; font-weight: 500; line-height: 1.5;
  gap: var(--dc-tvh-icon-gap); text-align: left; text-transform: none;
  white-space: normal; overflow-wrap: anywhere; text-decoration: none;
  transition: color var(--dc-tvh-animation-ms) ease;
}
/* Dot stays fixed at x14px; every inline icon AND title moves as one row. */
.dc-tvh .dc-tvh__sub-link::before,
.dc-tvh .dc-tvh__sub-label::before {
  content: ''; position: absolute; top: 50%; left: 14px;
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--dc-tvh-sub-active); pointer-events: none;
  opacity: 0; transform: translateY(-50%) scale(.6);
  transition: opacity var(--dc-tvh-animation-ms) ease,
              transform var(--dc-tvh-animation-ms) cubic-bezier(.22,1,.36,1);
}
.dc-tvh :is(.dc-tvh__sub-link,.dc-tvh__sub-label) > span {
  min-width: 0; max-width: 100%; overflow-wrap: anywhere;
  transform: translate3d(0,0,0);
  transition: transform var(--dc-tvh-animation-ms) cubic-bezier(.22,1,.36,1);
}
.dc-tvh__item--sub:is(:hover, :focus-within, .is-expanded, .is-current, .is-current-ancestor) > .dc-tvh__entry::before {
  opacity: 1; transform: scaleX(1);
}
.dc-tvh .dc-tvh__item--sub:is(:hover, :focus-within, .is-expanded, .is-current, .is-current-ancestor) > .dc-tvh__entry > :is(.dc-tvh__sub-link, .dc-tvh__sub-label) {
  color: var(--dc-tvh-sub-active); background: transparent;
}
.dc-tvh .dc-tvh__item--sub:is(:hover, :focus-within, .is-expanded, .is-current, .is-current-ancestor) > .dc-tvh__entry > :is(.dc-tvh__sub-link, .dc-tvh__sub-label)::before {
  opacity: 1; transform: translateY(-50%) scale(1);
}
.dc-tvh .dc-tvh__item--sub:is(:hover, :focus-within, .is-expanded, .is-current, .is-current-ancestor) > .dc-tvh__entry > :is(.dc-tvh__sub-link, .dc-tvh__sub-label) > span {
  transform: translate3d(var(--dc-tvh-sub-slide),0,0);
}
/* Nested submenu buttons are part of the same painted row and share glyph center. */
.dc-tvh .dc-tvh__item--sub > .dc-tvh__entry > button.dc-tvh__submenu-toggle {
  position: relative; z-index: 1;
  width: 38px; min-height: 48px; margin-left: auto;
  color: var(--dc-tvh-sub) !important;
}
.dc-tvh .dc-tvh__item--sub:is(:hover, :focus-within, .is-expanded, .is-current, .is-current-ancestor) > .dc-tvh__entry > button.dc-tvh__submenu-toggle {
  color: var(--dc-tvh-sub-active) !important;
}
.dc-tvh .dc-tvh__item--sub > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon,
.dc-tvh .dc-tvh__item--sub:is(:hover,:focus-within,.is-expanded) > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon { transform: rotate(-90deg); }
.dc-tvh .dc-tvh__item--sub.dc-tvh__flip > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon,
.dc-tvh .dc-tvh__item--sub.dc-tvh__flip:is(:hover,:focus-within,.is-expanded) > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon { transform: rotate(90deg); }
.dc-tvh__hotline { flex: 0 1 auto; min-width: 0; max-width: min(100%, 248px); display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.dc-tvh__hotline-text { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; white-space: normal; min-width: 0; }
.dc-tvh__phone-label { color: var(--dc-tvh-nav); font-size: 14px; line-height: 1.2; font-weight: 600; }
.dc-tvh a.dc-tvh__phone-value,
.dc-tvh a.dc-tvh__phone-value:hover,
.dc-tvh a.dc-tvh__phone-value:focus-visible {
  color: var(--dc-tvh-phone); font-family: inherit; font-size: 22px; font-weight: 750;
  display: block; max-width: 100%; line-height: 1.2; text-decoration: none; white-space: normal; overflow-wrap: anywhere; word-break: break-word; text-align: left;
}
.dc-tvh a.dc-tvh__call-circle {
  display: flex; align-items: center; justify-content: center; flex: 0 0 var(--dc-tvh-call-size); width: var(--dc-tvh-call-size); height: var(--dc-tvh-call-size);
  border: var(--dc-tvh-call-border-width) solid var(--dc-tvh-call-border); border-radius: 50%;
  background: var(--dc-tvh-call-bg); color: var(--dc-tvh-call-color);
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.dc-tvh a.dc-tvh__call-circle:hover { color: var(--dc-tvh-call-color); border-color: var(--dc-tvh-call-border); background: var(--dc-tvh-call-bg-hover); transform: scale(1.04); }
.dc-tvh__phone-icon { width: var(--dc-tvh-phone-icon-size); height: var(--dc-tvh-phone-icon-size); }
.dc-tvh__phone-icon svg { stroke: currentColor; }
.dc-tvh__menu-button, .dc-tvh__mobile-top, .dc-tvh__mobile-hotline, .dc-tvh__backdrop { display: none !important; }
/* Custom Elementor Icon Library / SVG; icon wrappers isolate global Elementor rules. */
.dc-tvh .dc-tvh__icon { display: inline-flex; align-items: center; justify-content: center; align-self: center; flex: 0 0 var(--dc-tvh-item-icon-size); width: var(--dc-tvh-item-icon-size); height: var(--dc-tvh-item-icon-size); max-width: 100%; line-height: 1; vertical-align: middle; }
.dc-tvh .dc-tvh__icon > :is(svg,img,i) { display: block; flex: 0 0 auto; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; font-size: inherit; color: inherit; }
.dc-tvh .dc-tvh__icon > i { display: flex; align-items: center; justify-content: center; font-size: inherit; }
.dc-tvh .dc-tvh__icon--visually-hidden { visibility: hidden; }
.dc-tvh .dc-tvh__email-icon, .dc-tvh .dc-tvh__extra-icon { flex-basis: var(--dc-tvh-email-icon-size); width: var(--dc-tvh-email-icon-size); height: var(--dc-tvh-email-icon-size); }
.dc-tvh .dc-tvh__email-icon > i, .dc-tvh .dc-tvh__extra-icon > i { font-size: var(--dc-tvh-email-icon-size); }
.dc-tvh .dc-tvh__phone-icon { flex-basis: var(--dc-tvh-phone-icon-size); width: var(--dc-tvh-phone-icon-size); height: var(--dc-tvh-phone-icon-size); }
.dc-tvh .dc-tvh__phone-icon > i { font-size: var(--dc-tvh-phone-icon-size); }
.dc-tvh .dc-tvh__arrow-icon { flex-basis: var(--dc-tvh-dropdown-icon-size); width: var(--dc-tvh-dropdown-icon-size); height: var(--dc-tvh-dropdown-icon-size); }
.dc-tvh .dc-tvh__arrow-icon > i { font-size: var(--dc-tvh-dropdown-icon-size); }
.dc-tvh .dc-tvh__mobile-icon { flex-basis: var(--dc-tvh-mobile-icon-size); width: var(--dc-tvh-mobile-icon-size); height: var(--dc-tvh-mobile-icon-size); }
.dc-tvh .dc-tvh__mobile-icon > i { font-size: var(--dc-tvh-mobile-icon-size); }
.dc-tvh .dc-tvh__item-icon > i { font-size: var(--dc-tvh-item-icon-size); }
.dc-tvh .dc-tvh__nav-link .dc-tvh__item-icon, .dc-tvh .dc-tvh__nav-label .dc-tvh__item-icon { color: var(--dc-tvh-nav-icon-color); }
.dc-tvh .dc-tvh__sub-link .dc-tvh__item-icon, .dc-tvh .dc-tvh__sub-label .dc-tvh__item-icon { color: var(--dc-tvh-sub-icon-color); }
.dc-tvh .dc-tvh__item--sub:is(:hover,:focus-within,.is-expanded,.is-current,.is-current-ancestor) > .dc-tvh__entry .dc-tvh__item-icon { color: var(--dc-tvh-sub-icon-active); }
.dc-tvh .dc-tvh__top-extra,
.dc-tvh .dc-tvh__top-extra:is(:hover,:focus-visible) { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-width: 0; max-width: 100%; color: var(--dc-tvh-email-color); text-decoration: none; font-size: 16px; white-space: normal; overflow-wrap: anywhere; }
.dc-tvh .dc-tvh__top-extra > span:last-child { min-width: 0; overflow-wrap: anywhere; }
.dc-tvh .dc-tvh__menu-button .dc-tvh__mobile-icon, .dc-tvh .dc-tvh__close .dc-tvh__mobile-icon { color: var(--dc-tvh-mobile-icon-color); }
/* Keep label visibility and content flow even for custom SVG assets or long menu labels. */
.dc-tvh .dc-tvh__nav-link > span:not(.dc-tvh__icon), .dc-tvh .dc-tvh__sub-link > span:not(.dc-tvh__icon),
.dc-tvh .dc-tvh__nav-label > span:not(.dc-tvh__icon), .dc-tvh .dc-tvh__sub-label > span:not(.dc-tvh__icon) { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 1199px) {
  .dc-tvh { --dc-tvh-topbar-height: 43px; --dc-tvh-main-height: 86px; --dc-tvh-logo-height: 74px; --dc-tvh-main-gap: 16px; }
  .dc-tvh button.dc-tvh__menu-button,
  .dc-tvh button.dc-tvh__menu-button:is(:hover,:focus,:active) {
    background: var(--dc-tvh-mobile-button-bg) !important; background-color: var(--dc-tvh-mobile-button-bg) !important;
    color: var(--dc-tvh-mobile-icon-color) !important;
  }
  .dc-tvh .dc-tvh__sub-link, .dc-tvh .dc-tvh__sub-label { width: 100%; }
}
@media (max-width: 767px) {
  .dc-tvh { --dc-tvh-inline-pad: 14px; --dc-tvh-topbar-height: 38px; --dc-tvh-main-height: 76px; --dc-tvh-logo-height: 62px; --dc-tvh-main-gap: 10px; }
  .dc-tvh__topbar-inner { row-gap: 6px; }

  /* A header row needs only the 48px tap target and 8px breathing room
     on each side. Legacy desktop/tablet min-height variables should not
     reserve extra blank vertical space on mobile. The existing Elementor
     mobile main-height control is still respected when explicitly saved. */
  .dc-tvh .dc-tvh__main {
    height: auto;
    min-height: 0;
    margin-block: 0;
    padding-block: 0;
  }
  .dc-tvh .dc-tvh__main-inner {
    height: auto;
    min-height: 0;
    margin-block: 0;
    padding-block: 8px;
    align-items: center;
  }
  .dc-tvh.dc-tvh--mobile-height-custom .dc-tvh__main-inner {
    min-height: var(--dc-tvh-main-height);
  }
}
@media (max-width: 359px) { .dc-tvh { --dc-tvh-inline-pad: 11px; } }
@media (max-width: 1535px) and (min-width: 1200px) {
  .dc-tvh__main-inner { gap: 14px; }
  .dc-tvh__menu { gap: min(var(--dc-tvh-menu-gap), 26px); }
  .dc-tvh a.dc-tvh__brand { flex-basis: min(var(--dc-tvh-logo-width), 320px); width: min(var(--dc-tvh-logo-width), 320px); }
  .dc-tvh .dc-tvh__nav-link, .dc-tvh .dc-tvh__nav-label { font-size: 16px; }
  .dc-tvh a.dc-tvh__phone-value { font-size: 19px; }
  .dc-tvh__hotline { gap: 8px; }
}
@media (max-width: 1279px) and (min-width: 1200px) {
  .dc-tvh__menu { gap: min(var(--dc-tvh-menu-gap), 20px); }
  .dc-tvh a.dc-tvh__brand { flex-basis: min(var(--dc-tvh-logo-width), 285px); width: min(var(--dc-tvh-logo-width), 285px); }
  .dc-tvh .dc-tvh__nav-link, .dc-tvh .dc-tvh__nav-label { font-size: 15px; }
  .dc-tvh a.dc-tvh__phone-value { font-size: 18px; }
}
@media (max-width: 1199px) {
  .dc-tvh__inner { width: min(100% - (2 * var(--dc-tvh-inline-pad)), var(--dc-tvh-content-width)); }
  .dc-tvh__topbar-inner { min-height: var(--dc-tvh-topbar-height); }
  .dc-tvh__main-inner { min-height: var(--dc-tvh-main-height); gap: var(--dc-tvh-main-gap); justify-content: space-between; }
  .dc-tvh a.dc-tvh__brand { flex: 0 1 min(var(--dc-tvh-logo-width), 245px); width: min(var(--dc-tvh-logo-width), 245px); }
  .dc-tvh a.dc-tvh__brand img, .elementor .dc-tvh a.dc-tvh__brand img { max-height: var(--dc-tvh-logo-height); }
  .dc-tvh__navigation-shell { display: contents; }
  .dc-tvh__hotline { margin-left: auto; }
  .dc-tvh button.dc-tvh__menu-button {
    display: inline-flex !important; flex: 0 0 48px; width: 48px; height: 48px;
    border: 1px solid rgb(8 9 119 / 12%) !important; border-radius: 10px;
  }
  .dc-tvh .dc-tvh__mobile-icon { flex-basis: var(--dc-tvh-mobile-icon-size); width: var(--dc-tvh-mobile-icon-size); height: var(--dc-tvh-mobile-icon-size); }
  .dc-tvh .dc-tvh__backdrop {
    position: fixed; inset: 0; z-index: 1; display: block !important;
    background: rgb(1 6 35 / 52%); background: color-mix(in srgb, var(--dc-tvh-mobile-backdrop) 52%, transparent); opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity var(--dc-tvh-animation-ms) ease, visibility 0s linear var(--dc-tvh-animation-ms);
  }
  .dc-tvh .dc-tvh__nav {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 2;
    display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start;
    width: min(88vw, var(--dc-tvh-mobile-width)); max-width: 100vw; height: 100vh; height: 100dvh;
    min-height: 0; padding: 0 0 max(18px, env(safe-area-inset-bottom));
    background: var(--dc-tvh-mobile-panel-bg); box-shadow: -8px 0 35px rgb(0 0 0 / 12%);
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    transform: translateX(105%); visibility: hidden; pointer-events: none;
    transition: transform var(--dc-tvh-animation-ms) cubic-bezier(.2,.78,.2,1), visibility 0s linear var(--dc-tvh-animation-ms);
  }
  .dc-tvh.is-menu-open .dc-tvh__nav { transform: translateX(0); visibility: visible; pointer-events: auto; transition: transform var(--dc-tvh-animation-ms) cubic-bezier(.2,.78,.2,1), visibility 0s; }
  .dc-tvh.is-menu-open .dc-tvh__backdrop { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity var(--dc-tvh-animation-ms) ease, visibility 0s; }
  .dc-tvh .dc-tvh__mobile-top {
    display: flex !important; flex: 0 0 auto; align-items: center; justify-content: space-between;
    min-height: 74px; padding: 13px 20px; border-bottom: 1px solid rgb(8 9 119 / 9%);
    font-size: 18px; font-weight: 700; color: var(--dc-tvh-nav);
  }
  .dc-tvh button.dc-tvh__close { display: inline-flex; width: 44px; height: 44px; border-radius: 8px; }
  .dc-tvh__close .dc-tvh__mobile-icon { width: var(--dc-tvh-mobile-icon-size); height: var(--dc-tvh-mobile-icon-size); }
  .dc-tvh .dc-tvh__menu { display: flex; flex: 0 0 auto; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; padding: 15px 14px; width: 100%; }
  .dc-tvh .dc-tvh__item--top { display: block; width: 100%; border-bottom: 1px solid rgb(8 9 119 / 8%); }
  .dc-tvh .dc-tvh__item--top > .dc-tvh__entry { min-height: 54px; display: flex; align-items: center; width: 100%; }
  .dc-tvh .dc-tvh__nav-link, .dc-tvh .dc-tvh__nav-label { flex: 1 1 auto; font-size: 15px; min-height: 54px; padding: 12px 10px; }
  .dc-tvh .dc-tvh__item--top > .dc-tvh__entry::after { display: none; }
  .dc-tvh .dc-tvh__item--top:is(.is-current,.is-current-ancestor,.is-expanded) > .dc-tvh__entry > :is(.dc-tvh__nav-link, .dc-tvh__nav-label) { color: var(--dc-tvh-nav-active); }
  .dc-tvh button.dc-tvh__submenu-toggle { flex: 0 0 48px; width: 48px; min-height: 48px; margin: 0; border-radius: 8px; }
  .dc-tvh__item:is(:hover, :focus-within) > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon { transform: none; }
  .dc-tvh__item.is-expanded > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon { transform: rotate(180deg); }
  .dc-tvh .dc-tvh__flyout, .dc-tvh .dc-tvh__item--sub > .dc-tvh__flyout, .dc-tvh .dc-tvh__item--sub.dc-tvh__flip > .dc-tvh__flyout {
    position: static; display: grid; grid-template-rows: 0fr; width: 100%; min-width: 0; max-width: 100%;
    background: transparent; border-radius: 0; box-shadow: none;
    opacity: 1; visibility: visible; pointer-events: auto; transform: none;
    overflow: hidden; transition: grid-template-rows var(--dc-tvh-animation-ms) ease;
  }
  .dc-tvh .dc-tvh__flyout > .dc-tvh__submenu { min-height: 0; overflow: hidden; }
  .dc-tvh .dc-tvh__item:is(:hover,:focus-within) > .dc-tvh__flyout { grid-template-rows: 0fr; }
  .dc-tvh .dc-tvh__item.is-expanded > .dc-tvh__flyout { grid-template-rows: 1fr; }
  .dc-tvh .dc-tvh__submenu { display: flex; flex-direction: column; padding: 0 0 8px 12px; }
  .dc-tvh .dc-tvh__item--sub > .dc-tvh__entry { min-height: 48px; }
  .dc-tvh .dc-tvh__sub-link, .dc-tvh .dc-tvh__sub-label {
    font-size: 14px; min-height: 48px;
    padding: 10px calc(12px + var(--dc-tvh-sub-slide)) 10px 12px;
  }
  /* Touch: only expanded/current or pressed are selected; no sticky hover. */
  .dc-tvh .dc-tvh__item--sub:is(:hover,:focus-within) > .dc-tvh__entry::before { opacity: 0; transform: scaleX(0); }
  .dc-tvh .dc-tvh__item--sub:is(:hover,:focus-within) > .dc-tvh__entry > :is(.dc-tvh__sub-link,.dc-tvh__sub-label) { color: var(--dc-tvh-sub); }
  .dc-tvh .dc-tvh__item--sub:is(:hover,:focus-within) > .dc-tvh__entry > :is(.dc-tvh__sub-link,.dc-tvh__sub-label)::before { opacity: 0; transform: translateY(-50%) scale(.6); }
  .dc-tvh .dc-tvh__item--sub:is(:hover,:focus-within) > .dc-tvh__entry > :is(.dc-tvh__sub-link,.dc-tvh__sub-label) > span { transform: translate3d(0,0,0); }
  .dc-tvh .dc-tvh__item--sub:is(.is-current,.is-current-ancestor,.is-expanded,:active) > .dc-tvh__entry::before { opacity: 1; transform: scaleX(1); }
  .dc-tvh .dc-tvh__item--sub:is(.is-current,.is-current-ancestor,.is-expanded,:active) > .dc-tvh__entry > :is(.dc-tvh__sub-link,.dc-tvh__sub-label) { color: var(--dc-tvh-sub-active); }
  .dc-tvh .dc-tvh__item--sub:is(.is-current,.is-current-ancestor,.is-expanded,:active) > .dc-tvh__entry > :is(.dc-tvh__sub-link,.dc-tvh__sub-label)::before { opacity: 1; transform: translateY(-50%) scale(1); }
  .dc-tvh .dc-tvh__item--sub:is(.is-current,.is-current-ancestor,.is-expanded,:active) > .dc-tvh__entry > :is(.dc-tvh__sub-link,.dc-tvh__sub-label) > span { transform: translate3d(var(--dc-tvh-sub-slide),0,0); }
  .dc-tvh__item--sub > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon { transform: none; }
  .dc-tvh__item--sub.is-expanded > .dc-tvh__entry > .dc-tvh__submenu-toggle .dc-tvh__arrow-icon { transform: rotate(180deg); }
  .dc-tvh .dc-tvh__mobile-hotline {
    display: flex !important; flex: 0 0 auto; flex-direction: column; gap: 7px;
    margin: 16px 24px; padding: 20px 0; border-top: 1px solid rgb(8 9 119 / 10%);
    color: var(--dc-tvh-nav); font-size: 14px; font-weight: 600;
  }
  .dc-tvh .dc-tvh__mobile-hotline a { width: fit-content; max-width: 100%; color: var(--dc-tvh-phone); font-size: 22px; font-weight: 700; overflow-wrap: anywhere; }
}
@media (max-width: 767px) {
  .dc-tvh__inner { width: min(100% - 28px, var(--dc-tvh-content-width)); }
  .dc-tvh__topbar-inner { min-height: var(--dc-tvh-topbar-height); justify-content: center; }
  .dc-tvh__main-inner { min-height: var(--dc-tvh-main-height); gap: var(--dc-tvh-main-gap); }
  .dc-tvh a.dc-tvh__brand { flex: 0 1 min(var(--dc-tvh-logo-width), 220px); width: min(var(--dc-tvh-logo-width), 220px); }
  .dc-tvh a.dc-tvh__brand img, .elementor .dc-tvh a.dc-tvh__brand img { max-height: var(--dc-tvh-logo-height); }
  .dc-tvh__hotline { display: none; }
  .dc-tvh button.dc-tvh__menu-button { flex-basis: 48px; width: 48px; height: 48px; }
}
@media (max-width: 359px) {
  .dc-tvh__inner { width: min(100% - 22px, var(--dc-tvh-content-width)); }
  .dc-tvh a.dc-tvh__brand { flex-basis: min(var(--dc-tvh-logo-width), 180px); width: min(var(--dc-tvh-logo-width), 180px); }
  .dc-tvh .dc-tvh__nav { width: min(92vw, var(--dc-tvh-mobile-width)); }
}
@media (prefers-reduced-motion: reduce) {
  .dc-tvh *, .dc-tvh *::before, .dc-tvh *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
/* Modal scroll lock exists only while the user has opened a mobile drawer. */
body.dc-tvh-body-locked { overflow: hidden; }
@media (min-width: 1200px) {
  .dc-tvh .dc-tvh__item.is-closed-by-toggle > .dc-tvh__flyout { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-6px); }
}
