/* 1Venda header and footer: full width, built from native Elementor widgets.
   Everything reads the theme's tokens, so each theme and dark mode restyle it without new rules.
   No rule here uses !important on colour, type or spacing of a widget, so anything set in
   Elementor's Style tab wins. Layout structure (rows, grids, responsive visibility) is set as
   Elementor container settings on the template itself. */

/* ---------- Full-width bars ---------- */
body.ehf-header #masthead { position: sticky; top: 0; z-index: 1000; width: 100%; max-width: none; margin: 0; transition: transform 0.45s var(--v1-ease-out); }
body.admin-bar.ehf-header #masthead { top: 32px; }
body.ehf-header #masthead.is-hidden { transform: translateY(-110%); }
body.ehf-footer #colophon, .footer-width-fixer { width: 100%; max-width: none; margin: 0; padding: 0; }
.e-con.v1w-hdr, .e-con.v1w-ftr { --gutter: clamp(20px, 3vw, 48px); --width: 100%; --content-width: 100%; max-width: none; }
.v1w-hdr .elementor-widget:not(:last-child), .v1w-ftr .elementor-widget:not(:last-child) { margin-block-end: 0; }

/* ---------- Header row ---------- */
.v1w-hdr, .v1w-hdr .e-con { --flex-wrap: nowrap; --flex-wrap-mobile: nowrap; }
.e-con.v1w-hdr { --padding-top: 0; --padding-right: var(--gutter); --padding-bottom: 0; --padding-left: var(--gutter); --min-height: 72px; --gap: 0; --row-gap: 0; --column-gap: 0; --container-widget-width: auto; --container-widget-flex-grow: 0; position: relative; flex-wrap: nowrap; background: var(--surface); border-bottom: 1px solid var(--line); z-index: 2; }
#masthead.is-scrolled .e-con.v1w-hdr { box-shadow: var(--shadow-float); }
.v1w-hdr .e-con { --width: auto; --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; --row-gap: 0; --column-gap: 0; }
.e-con.v1w-hdr-brand { flex: none; }
.v1w-hdr-logo img { display: block; height: 30px; width: auto; max-width: none; border-radius: 0; }
.v1w-logo-dark { display: none; }
[data-theme="dark"] .v1w-logo-light { display: none; }
[data-theme="dark"] .v1w-logo-dark { display: block; }
.e-con.v1w-hdr-nav { --flex-grow: 1; position: static; margin-left: clamp(16px, 3vw, 48px); }
.e-con.v1w-hdr-item { position: static; }
.e-con.v1w-hdr-actions { flex: none; gap: 8px; }

/* Top items */
.v1w-nav-btn .elementor-button { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ink-body); font: 700 13px/24px var(--font-sans); letter-spacing: 0.6px; text-transform: uppercase; cursor: pointer; transition: color var(--v1-dur), background-color var(--v1-dur); }
.v1w-nav-btn .elementor-button:hover { background: transparent; color: var(--tenant-primary); }
.v1w-nav-btn .elementor-button[aria-current="page"] { background: var(--ink); color: var(--surface); }
.v1w-nav-btn .elementor-button[aria-expanded="true"] { background: var(--surface-soft); color: var(--ink); }
.v1w-nav-has-panel .elementor-button-text::after { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 2px 2px 8px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg); transition: transform var(--v1-dur) var(--v1-ease-out); }
.v1w-nav-has-panel .elementor-button[aria-expanded="true"] .elementor-button-text::after { transform: translateY(3px) rotate(-135deg); }
.v1w-hdr-cta .elementor-button { display: inline-flex; align-items: center; padding: 10px 18px; border: 0; border-radius: var(--radius-pill); background: var(--ink); color: var(--surface); font: 600 14px/24px var(--font-sans); transition: background-color var(--v1-dur), color var(--v1-dur); }
.v1w-hdr-cta .elementor-button:hover { background: var(--tenant-primary); color: var(--on-tenant); }
.v1w-hdr-cta .elementor-button-text::after { content: "→"; margin-left: 8px; }
.v1w-hdr .elementor-button:focus-visible, .v1w-hdr a:focus-visible, .v1w-ftr a:focus-visible, .v1w-ftr .elementor-button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }

/* Menu toggle: the button text stays as its accessible name, the bars are drawn beside it */
.v1w-nav-toggle .elementor-button { display: inline-flex; align-items: center; gap: 10px; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--radius-pill); background: var(--surface); color: var(--ink); font: 600 13px/24px var(--font-sans); cursor: pointer; }
.v1w-nav-toggle .elementor-button:hover { background: var(--surface-soft); color: var(--ink); }
.v1w-nav-toggle .elementor-button-text::after { content: ""; display: inline-block; width: 18px; height: 10px; margin-left: 10px; vertical-align: 1px; border-top: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; }

/* ---------- Mega panel: spans the full width of the bar ---------- */
.e-con.v1w-mega { display: none; position: absolute; left: 0; right: 0; top: 100%; --width: 100%; --padding-top: 20px; --padding-right: var(--gutter); --padding-bottom: 28px; --padding-left: var(--gutter); background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: 0 30px 50px -20px rgba(0, 0, 0, 0.18); z-index: 3; }
.v1w-hdr-item.is-open > .e-con.v1w-mega { display: flex; animation: v1w-drop 0.35s var(--v1-ease-out); }
@keyframes v1w-drop { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.e-con.v1w-mega-intro { --width: 240px; flex: none; --gap: 12px; --row-gap: 12px; --container-widget-width: 100%; }
.v1w-mega-eyebrow .elementor-heading-title { font: 500 12px/16px var(--font-sans); letter-spacing: 1.4px; text-transform: uppercase; color: var(--ink-muted); }
.v1w-mega-intro-text .elementor-widget-container, .v1w-mega-intro-text { font: 400 20px/28px var(--font-display); letter-spacing: -0.4px; color: var(--ink); }
.v1w-mega-intro-text p { margin: 0; }
.v1w-mega-all { margin-top: auto; }
.v1w-mega-all .elementor-button { padding: 8px 0; background: transparent; color: var(--ink); font: 600 14px/24px var(--font-sans); border-radius: 0; }
.v1w-mega-all .elementor-button:hover { background: transparent; color: var(--tenant-primary); }
.v1w-mega-all .elementor-button-text::after { content: "→"; margin-left: 8px; }
.e-con.v1w-mega-list { --width: auto; --flex-grow: 1; flex: 1 1 0; min-width: 0; --gap: 4px; --row-gap: 4px; --column-gap: 4px; gap: 4px; align-content: start; }
.e-con.v1w-mega-side { --width: 380px; flex: none; }

/* Entries: Image Box in the row layout, the whole card is the link */
.v1w-mega-item { position: relative; padding: 12px; border-radius: var(--radius-sm); transition: background-color var(--v1-dur); }
.v1w-mega-item:hover, .v1w-mega-item.is-active { background: var(--surface-soft); }
.elementor-widget.v1w-mega-item .elementor-image-box-wrapper { display: flex; align-items: center; gap: 14px; text-align: left; }
.v1w-mega-item .elementor-image-box-img { flex: none; width: 72px !important; height: 48px; margin: 0 !important; overflow: hidden; border-radius: 10px; background: var(--surface-soft); box-shadow: inset 0 0 0 1px var(--line); }
.v1w-mega-item .elementor-image-box-img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.v1w-mega-item .elementor-image-box-content { min-width: 0; }
.v1w-mega-item .elementor-image-box-title { margin: 0; font: 600 15px/22px var(--font-sans); color: var(--ink); }
.v1w-mega-item .elementor-image-box-title a { color: inherit; text-decoration: none; }
.v1w-mega-item .elementor-image-box-title a::after { content: ""; position: absolute; inset: 0; }
.v1w-mega-item .elementor-image-box-description { margin: 0; font: 500 13px/20px var(--font-sans); color: var(--ink-muted); }

/* Preview card */
.v1w-mega-preview { position: relative; height: 100%; overflow: hidden; border-radius: var(--radius-md); background: var(--surface-inverse); color: var(--on-inverse); }
.elementor-widget.v1w-mega-preview .elementor-image-box-wrapper { display: flex; flex-direction: column; text-align: left; }
.v1w-mega-preview .elementor-image-box-img { width: 100% !important; margin: 0 !important; aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface); }
.v1w-mega-preview .elementor-image-box-img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: opacity 0.3s var(--v1-ease-out), transform 0.9s var(--v1-ease-out); }
.v1w-mega-preview .elementor-image-box-content { padding: 16px 20px 20px; transition: opacity 0.25s var(--v1-ease-out), transform 0.3s var(--v1-ease-out); }
.v1w-mega-preview .elementor-image-box-title { margin: 0 0 6px; font: 400 22px/28px var(--font-display); letter-spacing: -0.5px; color: var(--on-inverse); }
.v1w-mega-preview .elementor-image-box-title a { color: inherit; text-decoration: none; }
.v1w-mega-preview .elementor-image-box-title a::after { content: ""; position: absolute; inset: 0; }
.v1w-mega-preview .elementor-image-box-description { margin: 0; font: 500 14px/22px var(--font-sans); color: var(--on-inverse-muted); }
.v1w-mega-preview.is-swapping .elementor-image-box-img img { opacity: 0; transform: scale(1.05); }
.v1w-mega-preview.is-swapping .elementor-image-box-content { opacity: 0; transform: translateY(8px); }

/* Scrim behind an open panel */
.v1w-scrim { position: fixed; inset: 0; z-index: -1; background: rgba(17, 17, 17, 0.28); opacity: 0; pointer-events: none; transition: opacity 0.3s var(--v1-ease-out); }
.v1w-hdr.mega-open .v1w-scrim { opacity: 1; pointer-events: auto; }

@media (max-width: 1280px) and (min-width: 1025px) { .e-con.v1w-mega-intro { display: none; } .e-con.v1w-mega-side { --width: 300px; } }

/* ---------- Tablet and phone: the nav drops down under the bar, panels become accordions ---------- */
@media (max-width: 1024px) {
  .e-con.v1w-hdr { --min-height: 64px; }
  .e-con.v1w-hdr-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; --width: 100%; margin: 0; --padding-top: 8px; --padding-right: var(--gutter); --padding-bottom: 20px; --padding-left: var(--gutter); max-height: calc(100vh - 64px); overflow-y: auto; overscroll-behavior: contain; background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: 0 30px 50px -20px rgba(0, 0, 0, 0.18); }
  .v1w-hdr.is-open .e-con.v1w-hdr-nav { display: flex; }
  .e-con.v1w-hdr-item { --width: 100%; border-bottom: 1px solid var(--line); --container-widget-width: 100%; }
  .v1w-nav-btn .elementor-button { display: flex; width: 100%; justify-content: space-between; padding: 14px 4px; font-size: 15px; border-radius: 0; }
  .v1w-nav-btn .elementor-button .elementor-button-text { display: flex; flex: 1; justify-content: space-between; align-items: center; }
  .v1w-nav-btn .elementor-button[aria-expanded="true"], .v1w-nav-btn .elementor-button[aria-current="page"] { background: transparent; color: var(--tenant-primary); }
  .e-con.v1w-mega { position: static; --padding-top: 0; --padding-right: 0; --padding-bottom: 12px; --padding-left: 0; box-shadow: none; border: 0; }
  .v1w-hdr-item.is-open > .e-con.v1w-mega { animation: none; }
  .e-con.v1w-mega-intro, .e-con.v1w-mega-side { display: none; }
  .e-con.v1w-mega-list { --width: 100%; flex: 1 1 100%; }
  .v1w-mega-item { padding: 10px 4px; }
  .v1w-scrim { display: none; }
  .v1w-hdr-cta .elementor-button { padding: 8px 14px; font-size: 13px; }
  .v1w-hdr-logo img { height: 26px; }
}
@media (max-width: 400px) { .v1w-hdr-cta { display: none; } }
@media (max-width: 782px) { body.admin-bar.ehf-header #masthead { top: 46px; } }

/* ---------- Footer ---------- */
.e-con.v1w-ftr { --padding-top: 64px; --padding-right: var(--gutter); --padding-bottom: 0; --padding-left: var(--gutter); --gap: 0; --row-gap: 0; --column-gap: 0; --container-widget-width: 100%; background: var(--surface-inverse); color: var(--on-inverse-muted); overflow: hidden; }
.v1w-ftr .e-con { --width: 100%; --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; --row-gap: 0; --column-gap: 0; }
.e-con.v1w-ftr-cols { gap: 32px clamp(24px, 4vw, 64px); }
.elementor-widget.v1w-ftr-logo { text-align: left; }
.v1w-ftr-logo img { display: block; height: 32px; width: auto; border-radius: 0; }
.v1w-ftr-about { margin-top: 20px; font-size: 14px; line-height: 24px; color: var(--on-inverse-muted); max-width: 420px; }
.v1w-ftr-about p { margin: 0 0 14px; }
.v1w-ftr-about a { color: var(--on-inverse); text-decoration: none; }
.v1w-ftr-about a:hover { color: var(--tenant-highlight); }
.v1w-ftr-title .elementor-heading-title { margin: 0 0 8px; color: var(--on-inverse); font: 600 16px/30px var(--font-sans); }
.v1w-ftr-links .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.v1w-ftr-links .elementor-icon-list-item { margin: 0; padding: 0; }
.v1w-ftr-links .elementor-icon-list-item a { color: var(--on-inverse-muted); text-decoration: none; }
.v1w-ftr-links .elementor-icon-list-text { color: inherit; font-size: 14px; line-height: 32px; padding: 0; transition: color var(--v1-dur); }
.v1w-ftr-links .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--on-inverse); }
.e-con.v1w-ftr-legal { --container-widget-width: auto; margin-top: 48px; padding-top: 20px; border-top: 1px solid color-mix(in srgb, var(--on-inverse) 18%, transparent); gap: 16px; }
.v1w-ftr-legal-text { font-size: 14px; line-height: 24px; color: var(--on-inverse-muted); }
.v1w-ftr-legal-text p { margin: 0; }
.v1w-ftr-legal-text a { color: inherit; text-decoration: none; }
.v1w-ftr-legal-text a:hover { color: var(--on-inverse); }
.e-con.v1w-ftr-theme { --width: auto; flex: none; padding: 4px; gap: 2px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--on-inverse) 8%, transparent); }
.v1w-theme-btn .elementor-button { padding: 4px 12px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--on-inverse-muted); font: 600 12px/22px var(--font-sans); cursor: pointer; }
.v1w-theme-btn .elementor-button:hover { background: transparent; color: var(--on-inverse); }
.v1w-theme-btn .elementor-button[aria-pressed="true"] { background: var(--on-inverse); color: var(--surface-inverse); }
.v1w-ftr-bigmark { margin: 40px 0 -3%; opacity: 0.08; }
.v1w-ftr-bigmark img { display: block; width: 100%; height: auto; border-radius: 0; }
@media (max-width: 1024px) { .v1w-ftr-brand { grid-column: 1 / -1; } }

/* ---------- Editing the header template: every top item and its open panel stacked at full width,
   in the page flow, so each entry can be clicked and edited. Only this view uses !important; it
   never reaches the live site, where Elementor's own settings decide the layout. ---------- */
body.single-elementor-hf .e-con.v1w-hdr { flex-wrap: wrap !important; }
body.single-elementor-hf .e-con.v1w-hdr-nav { display: flex !important; flex-direction: column !important; flex: 0 0 100% !important; order: 3; position: static; max-height: none; overflow: visible; margin: 0; padding: 0; box-shadow: none; }
body.single-elementor-hf .e-con.v1w-hdr-item { flex: 0 0 auto !important; width: 100% !important; --width: 100%; border-right: 0; border-top: 1px solid var(--line); --container-widget-width: 100%; }
body.single-elementor-hf .v1w-nav-btn .elementor-button { min-height: 0; height: auto; padding: 12px 14px; }
body.single-elementor-hf .e-con.v1w-mega { display: flex !important; flex-direction: row !important; position: static; width: 100%; box-shadow: none; animation: none; border-bottom: 0; }
body.single-elementor-hf .e-con.v1w-mega-intro { display: flex !important; flex: 0 0 200px !important; width: 200px; }
body.single-elementor-hf .e-con.v1w-mega-list { display: grid !important; flex: 1 1 0 !important; min-width: 0; }
body.single-elementor-hf .e-con.v1w-mega-side { display: flex !important; flex: 0 0 260px !important; width: 260px; }
body.single-elementor-hf .v1w-logo-dark { display: block; background: #282828; margin-left: 12px; }
body.single-elementor-hf .v1w-ftr-bigmark { max-width: 320px; }
