/* 1Venda page sections as native Elementor widgets.
   Maps each widget's markup onto the design system. Colour and type come from the theme's tokens;
   nothing here uses !important on them, so a change in Elementor's Style tab wins. */

/* Widgets whose wrapper carries the type: the inner title takes it from there */
.n .elementor-heading-title, .price .elementor-heading-title, .price-unit .elementor-heading-title, .tag .elementor-heading-title, .v1w-status .elementor-heading-title, .ticker .item .elementor-heading-title, .v1w-quote-attr .elementor-heading-title { font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; line-height: inherit; }
.v1-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Icons are line drawings: never filled, in either icon style */
.v1-site .elementor-icon svg:not(.e-font-icon-svg), .v1-site .elementor-icon-list-icon svg:not(.e-font-icon-svg) { fill: none; stroke: currentColor; }

/* ---------- Layout gaps Elementor's grid leaves to the theme ---------- */
.e-con.v1w-sechead { gap: 40px; }
.e-con.v1w-hero-grid { gap: 48px; }
.e-con.v1w-twocol { gap: 64px; }
.e-con.v1w-features, .e-con.v1w-steps, .e-con.v1w-plans, .e-con.v1w-shots { gap: var(--space-5); }
@media (max-width: 767px) { .e-con.v1w-sechead { gap: 16px; } .e-con.v1w-hero-grid, .e-con.v1w-twocol { gap: 32px; } }

/* ---------- Buttons ---------- */
.elementor-widget.v1w-b .elementor-button { display: inline-flex; align-items: center; gap: 10px; border: 1px solid transparent; border-radius: var(--radius-pill); padding: 14px 22px; font: 600 16px/27px var(--font-sans); text-decoration: none; cursor: pointer; transition: background-color 0.3s, color 0.3s, border-color 0.3s; }
.elementor-widget.v1w-b .elementor-button:active { transform: scale(0.97); }
.elementor-widget.v1w-b-primary .elementor-button { background: var(--ink); color: var(--surface); }
.elementor-widget.v1w-b-primary .elementor-button:hover { background: var(--tenant-primary); color: var(--on-tenant); }
.elementor-widget.v1w-b-primary .elementor-button-text::after { content: "→"; margin-left: 10px; }
.elementor-widget.v1w-b-outline .elementor-button { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.elementor-widget.v1w-b-outline .elementor-button:hover { background: var(--ink); color: var(--surface); }
.elementor-widget.v1w-b-light .elementor-button { background: var(--on-inverse); color: var(--surface-inverse); }
.elementor-widget.v1w-b-light .elementor-button:hover { background: var(--tenant-primary); color: var(--on-tenant); }
.elementor-widget.v1w-b .elementor-button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.e-con.btn-row { margin-top: 8px; }
.e-con.v1w-btns-c { margin-top: 40px; --justify-content: center; justify-content: center; }

/* ---------- Feature cards: a container holding an Icon Box ---------- */
.e-con.feature { position: relative; --padding-top: 36px; --padding-right: 32px; --padding-bottom: 32px; --padding-left: 32px; --gap: 10px; --row-gap: 10px; min-height: 240px; border-radius: var(--radius-lg); background: var(--surface-soft); }
.feature .v1w-card-box { flex: 1 1 auto; }
.feature .elementor-icon-box-wrapper { display: flex; flex-direction: column; height: 100%; text-align: left; }
.feature .elementor-icon-box-icon { margin: 0 0 20px; display: block; }
.feature .elementor-icon { display: grid; place-items: center; width: 52px; height: 52px; font-size: 22px; border-radius: 50%; background: var(--surface); color: var(--ink); border: 1px solid var(--line); }
.feature .elementor-icon svg { width: 22px; height: 22px; }
.feature .elementor-icon-box-content { margin-top: auto; }
.feature .elementor-icon-box-title { font: 600 20px/30px var(--font-sans); color: var(--ink); margin: 0 0 8px; }
.feature .elementor-icon-box-title a { color: inherit; text-decoration: none; }
.feature .elementor-icon-box-description { margin: 0; color: var(--ink-muted); font-size: 15px; line-height: 26px; }
.e-con.feature.dark { background: var(--surface-inverse); }
.feature.dark .elementor-icon-box-title { color: var(--on-inverse); }
.feature.dark .elementor-icon { background: transparent; color: var(--on-inverse); border-color: color-mix(in srgb, var(--on-inverse) 30%, transparent); }
.feature.dark .elementor-icon-box-description { color: var(--on-inverse-muted); }
.e-con.feature.wide { grid-column: span 2; }
@media (max-width: 767px) { .e-con.feature.wide { grid-column: auto; } }

/* The whole card is the link; the arrow sits in the corner */
.e-con.feature.v1w-linked { transition: transform 0.6s var(--v1-ease-out), box-shadow 0.6s var(--v1-ease-out); }
.e-con.feature.v1w-linked:hover { transform: translateY(-6px); box-shadow: var(--shadow-card); }
.feature.v1w-linked .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.feature.v1w-linked .elementor-icon-box-title a::before { content: "→"; position: absolute; top: 24px; right: 24px; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: 16px; transition: transform 0.6s var(--v1-ease-out), background-color 0.3s, color 0.3s; }
.feature.v1w-linked:hover .elementor-icon-box-title a::before { transform: rotate(-45deg); background: var(--tenant-primary); color: var(--on-tenant); border-color: transparent; }
.feature.dark.v1w-linked .elementor-icon-box-title a::before { border-color: color-mix(in srgb, var(--on-inverse) 30%, transparent); }

.feature .v1w-uses { font-size: 13px; line-height: 22px; color: var(--ink-muted); }
.feature .v1w-uses span { display: block; font: 700 11px/16px var(--font-sans); letter-spacing: 1px; text-transform: uppercase; color: var(--ink); }
.feature .v1w-status { position: absolute; top: 28px; right: 28px; width: auto; padding: 2px 10px; border-radius: var(--radius-pill); font: 500 12px/20px var(--font-sans); }
.feature .v1w-status-building { background: var(--warning); color: #111111; }
.feature .v1w-status-testing { background: var(--success); color: #ffffff; }
.feature .v1w-status-planned { background: var(--surface); color: var(--ink-muted); border: 1px solid var(--line); }
.feature.dark .v1w-status-planned { background: transparent; color: var(--on-inverse-muted); border-color: color-mix(in srgb, var(--on-inverse) 30%, transparent); }

/* ---------- Steps ---------- */
.e-con.step { --padding-top: 24px; border-top: 1px solid var(--line-strong); }
.step .step-title .elementor-heading-title { font: 600 20px/30px var(--font-sans); color: var(--ink); margin: 16px 0 4px; }
.step .step-text { color: var(--ink-muted); font-size: 15px; line-height: 26px; }

/* ---------- Numbers: Counter widgets on the dark block ---------- */
.e-con.dark-block { --padding-top: 64px; --padding-right: 64px; --padding-bottom: 64px; --padding-left: 64px; background: var(--surface-inverse); color: var(--on-inverse-muted); border-radius: var(--radius-lg); }
.e-con.dark-block .e-con { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; }
.dark-block .elementor-widget.v1w-eyebrow .elementor-heading-title { color: var(--on-inverse-muted); }
.dark-block .elementor-widget.v1w-eyebrow .elementor-heading-title::before { background: var(--on-inverse-muted); }
.dark-block .elementor-widget.v1w-h .elementor-heading-title { color: var(--on-inverse); }
.dark-block .v1w-dark-p { margin-top: 16px; color: var(--on-inverse-muted); }
.e-con.dark-block.v1w-dark, .e-con.dark-block.v1w-calc { gap: 48px; align-items: center; }
.dark-block .v1w-dark-btn { margin-top: 28px; }
.e-con.v1w-numgrid { margin-top: 32px; gap: 32px; }
.v1w-numbers .e-con.v1w-numgrid:first-child { margin-top: 0; }
.elementor-widget.v1w-counter .elementor-counter { --counter-prefix-grow: 0; --counter-suffix-grow: 0; align-items: flex-start; gap: 8px; }
.elementor-widget.v1w-counter .elementor-counter-number-wrapper { display: flex; font: 800 clamp(40px, 4.4vw, 66px)/1 var(--font-sans); color: transparent; -webkit-text-stroke: 1px var(--on-inverse); font-variant-numeric: tabular-nums; }
.elementor-widget.v1w-counter .elementor-counter-number-prefix, .elementor-widget.v1w-counter .elementor-counter-number-suffix { flex-grow: 0; }
.elementor-widget.v1w-counter .elementor-counter-title { max-width: 260px; justify-content: flex-start; text-align: left; font: 500 15px/24px var(--font-sans); color: var(--on-inverse-muted); }
@media (max-width: 767px) { .e-con.dark-block { --padding-top: 40px; --padding-right: 28px; --padding-bottom: 40px; --padding-left: 28px; } }

/* ---------- Icon lists ---------- */
.v1w-list-w .elementor-icon-list-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; margin: 0; padding: 0; list-style: none; }
.v1w-list-w .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 16px; margin: 0; padding: 18px 0; border-top: 1px solid var(--line); }
.v1w-list-w .elementor-icon-list-icon { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--ink); }
.v1w-list-w .elementor-icon-list-icon svg { width: 20px; height: 20px; }
.v1w-list-w .elementor-icon-list-text { color: var(--ink-body); padding: 0; }
@media (max-width: 767px) { .v1w-list-w .elementor-icon-list-items { grid-template-columns: 1fr; } }
.elementor-widget.v1w-ul { margin-top: 16px; }
.v1w-ul .elementor-icon-list-items { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.v1w-ul .elementor-icon-list-item { position: relative; margin: 0; padding: 0 0 0 22px; }
.v1w-ul .elementor-icon-list-item::before { content: ""; position: absolute; left: 0; top: 13px; width: 10px; height: 1px; background: var(--tenant-primary); }
.v1w-ul .elementor-icon-list-icon { display: none; }
.v1w-ul .elementor-icon-list-text { color: var(--ink-body); padding: 0; }
.dark-block .v1w-ul .elementor-icon-list-text { color: var(--on-inverse-muted); }

/* ---------- Tables: rows of grid containers ---------- */
.e-con.v1w-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); }
.e-con.v1w-trow { gap: 0; border-bottom: 1px solid var(--line); }
.e-con.v1w-trow:last-child { border-bottom: 0; }
.e-con.v1w-trow-wide { min-width: 640px; }
.v1w-th { padding: 16px 20px; background: var(--surface-soft); font: 700 11px/16px var(--font-sans); letter-spacing: 1px; text-transform: uppercase; color: var(--ink-muted); }
.v1w-td { padding: 14px 20px; font-size: 15px; line-height: 24px; color: var(--ink-body); }
.v1w-td.first { color: var(--ink); font-weight: 600; }

/* ---------- FAQ: Nested Accordion ---------- */
.elementor-widget.faq { --n-accordion-border-width: 0px; --n-accordion-item-title-space-between: 0px; --n-accordion-item-title-distance-from-content: 0px; --n-accordion-padding: 0px; }
.faq .e-n-accordion-item { border-bottom: 1px solid var(--line); }
.faq .e-n-accordion-item-title { border: 0; background: transparent; }
.faq .e-n-accordion-item-title-header { flex: 1; }
.faq .e-n-accordion-item-title-text { font: inherit; letter-spacing: inherit; color: inherit; }
.faq .e-n-accordion-item-title-icon { display: none; }
.faq .e-n-accordion-item > .e-con { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; border: 0; }
.faq .a { padding: 0 64px 24px 0; color: var(--ink-muted); }

/* ---------- Quote ---------- */
.e-con.v1w-quote { max-width: 1000px; padding-top: 48px; border-top: 1px solid var(--line); }
.v1w-quote-text .elementor-heading-title { font: 400 clamp(26px, 3.2vw, 44px)/1.2 var(--font-display); letter-spacing: -0.03em; color: var(--ink); }
.v1w-quote-text .v1-grad-text { font-family: var(--font-serif); font-style: italic; color: var(--tenant-primary); }
.e-con.v1w-quote-by { margin-top: 24px; --width: auto; --container-widget-width: auto; }
.v1w-quote-mark img { display: block; width: 20px; height: 20px; }
.v1w-quote-attr { font-size: 14px; line-height: 20px; color: var(--ink-muted); }

/* ---------- Closing CTA ---------- */
.e-con.v1w-sec.v1w-cta { --padding-top: 160px; --padding-bottom: 120px; --padding-left: max(20px, calc((100vw - 1240px) / 2)); --padding-right: max(20px, calc((100vw - 1240px) / 2)); position: relative; overflow: hidden; background: #0b0b0c; color: #ffffff; }
.v1w-cta > .elementor-widget:not(.v1w-cta-img), .v1w-cta > .e-con { position: relative; z-index: 1; }
.v1w-cta .elementor-widget.v1w-eyebrow .elementor-heading-title { color: #bebebe; }
.v1w-cta .elementor-widget.v1w-eyebrow .elementor-heading-title::before { background: #bebebe; }
.v1w-cta-h .elementor-heading-title { margin-top: 16px; font: 400 clamp(44px, 7vw, 120px)/0.95 var(--font-display); letter-spacing: -0.045em; color: #ffffff; }
.v1w-cta-h .v1-grad-text { font-family: var(--font-serif); font-style: italic; letter-spacing: -0.01em; color: #c9b6f0; }
.e-con.v1w-cta-row { margin-top: 56px; align-items: flex-end; --container-widget-width: auto; }
.v1w-cta-text { max-width: 420px; color: #bebebe; font-size: 18px; line-height: 30px; }
.e-con.v1w-cta-btns { --width: auto; margin-top: 0; }
.v1w-cta .elementor-widget.v1w-b-primary .elementor-button { background: #ffffff; color: #111111; }
.v1w-cta .elementor-widget.v1w-b-primary .elementor-button:hover { background: var(--tenant-primary); color: #ffffff; }
.v1w-cta .elementor-widget.v1w-b-outline .elementor-button { color: #ffffff; border-color: rgba(255, 255, 255, 0.5); }
.v1w-cta .elementor-widget.v1w-b-outline .elementor-button:hover { background: #ffffff; color: #111111; }
.elementor-widget.v1w-cta-img { position: absolute; top: 0; right: 0; width: 38%; height: 100%; margin: 0; pointer-events: none; opacity: 0.22; }
.v1w-cta-img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; mask-image: linear-gradient(90deg, transparent, #000 40%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%); }
@media (max-width: 767px) { .e-con.v1w-sec.v1w-cta { --padding-top: 96px; --padding-bottom: 72px; } .e-con.v1w-cta-row { margin-top: 32px; } }

/* ---------- Ticker: Heading widgets in a moving track ---------- */
.e-con.ticker { --padding-top: 14px; --padding-bottom: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; }
.e-con.v1-marquee { overflow: hidden; }
.e-con.track { display: inline-flex; --width: max-content; width: max-content; flex-wrap: nowrap; --container-widget-width: auto; }
.ticker .item { flex: none; width: auto; font: 500 13px/24px var(--font-sans); letter-spacing: 1.4px; text-transform: uppercase; color: var(--ink-body); padding-right: 56px; white-space: nowrap; }
.ticker .item .elementor-heading-title::before { content: "●"; color: var(--tenant-primary); padding-right: 14px; }
.elementor-editor-active .e-con.track { animation: none; flex-wrap: wrap; width: 100%; --width: 100%; }

/* ---------- Names ---------- */
.e-con.v1w-logos { gap: 12px; margin-top: 8px; }
.elementor-widget.v1w-logo { display: block; width: auto; padding: 12px 20px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.v1w-logo p { display: flex; flex-direction: column; gap: 2px; margin: 0; }
.v1w-logo b { font: 600 15px/22px var(--font-sans); color: var(--ink); }
.v1w-logo small { font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.v1w-logos-group .elementor-widget.v1w-logo { flex: 1 1 260px; padding: 20px 24px; }
.v1w-logos-group .v1w-logo b { font: 400 24px/30px var(--font-display); letter-spacing: -0.02em; }

/* ---------- Countries: an Icon Box per row ---------- */
.elementor-widget.v1w-country { padding: 14px 0; border-top: 1px solid var(--line); }
.v1w-country .elementor-icon-box-wrapper { display: grid; grid-template-columns: 28px 160px 1fr; gap: 12px; align-items: baseline; text-align: left; }
.v1w-country .elementor-icon-box-icon { margin: 0; align-self: center; }
.v1w-country .elementor-icon { font-size: 18px; color: var(--ink-muted); display: block; }
.v1w-country .elementor-icon svg { width: 18px; height: 18px; }
.v1w-country.live .elementor-icon { color: var(--tenant-primary); }
.v1w-country .elementor-icon-box-content { display: contents; }
.v1w-country .elementor-icon-box-title { margin: 0; font: 600 16px/24px var(--font-sans); color: var(--ink); }
.v1w-country .elementor-icon-box-description { margin: 0; font-size: 14px; line-height: 22px; color: var(--ink-muted); }
@media (max-width: 600px) { .v1w-country .elementor-icon-box-wrapper { grid-template-columns: 28px 1fr; } .v1w-country .elementor-icon-box-description { grid-column: 2; } }

/* ---------- Screenshots: Image widgets with captions ---------- */
.elementor-widget.v1w-shot { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); text-align: left; }
.v1w-shot figure { margin: 0; }
.v1w-shot figure::before { content: ""; display: block; height: 32px; background: radial-gradient(circle at 19px 16px, var(--line) 4px, transparent 4.5px), radial-gradient(circle at 35px 16px, var(--line) 4px, transparent 4.5px), radial-gradient(circle at 51px 16px, var(--line) 4px, transparent 4.5px), var(--surface-soft); border-bottom: 1px solid var(--line); }
.v1w-shot img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; border-radius: 0; }
.v1w-shot figcaption { margin: 0; padding: 14px 18px; text-align: left; font-size: 14px; line-height: 22px; color: var(--ink-muted); border-top: 1px solid var(--line); }
.e-con.v1w-shots > .v1w-shot:first-child:nth-last-child(odd) { grid-column: 1 / -1; }
.e-con.v1w-shots > .v1w-shot:first-child:nth-last-child(odd) img { aspect-ratio: 16 / 9; }
.elementor-widget.v1w-fig img { width: 100%; height: auto; border-radius: var(--radius-lg); }
.elementor-widget.v1w-fig-img img { aspect-ratio: 4 / 3; object-fit: cover; }
.elementor-widget.v1w-fig-shot { padding: 10px; border-radius: var(--radius-lg); background: rgba(255, 255, 255, 0.06); }
.elementor-widget.v1w-fig-shot img { border-radius: var(--radius-md); }

/* ---------- Plans ---------- */
.e-con.plan { position: relative; --padding-top: 40px; --padding-right: 40px; --padding-bottom: 40px; --padding-left: 40px; --gap: 12px; --row-gap: 12px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.e-con.plan.featured { border: 2px solid var(--tenant-primary); }
.plan .tag { position: absolute; top: 24px; right: 24px; width: auto; }
.plan .plan-name .elementor-heading-title { font: 600 20px/30px var(--font-sans); color: var(--ink); }
.plan .price { font: 400 clamp(30px, 3vw, 44px)/1.05 var(--font-display); letter-spacing: -0.03em; color: var(--ink); }
.plan .price-unit { font: 500 14px/22px var(--font-sans); color: var(--ink-muted); }
.plan .plan-tagline { color: var(--ink-muted); font-size: 15px; line-height: 24px; }
.v1w-plan-list { flex: 1 1 auto; margin: 8px 0 12px; }
.v1w-plan-list .elementor-icon-list-items { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.v1w-plan-list .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 0; }
.plan .v1w-plan-list .elementor-icon-list-item::before { content: none; }
.v1w-plan-list .elementor-icon-list-icon { flex: none; width: 18px; color: var(--success); }
.v1w-plan-list .elementor-icon-list-icon svg { width: 18px; height: 18px; margin-top: 3px; }
.v1w-plan-list .elementor-icon-list-text { padding: 0; color: var(--ink-body); font-size: 15px; line-height: 24px; }
.plan .plan-btn .elementor-button-wrapper, .plan .plan-btn .elementor-button { display: flex; width: 100%; justify-content: center; }

/* ---------- Calculator: native text, HTML sliders ---------- */
.v1w-note { margin-top: 16px; font-size: 13px; line-height: 20px; color: var(--on-inverse-muted); }

/* The template's padding shorthand on these classes would beat Elementor's padding control */
.e-con.feature, .e-con.plan, .e-con.step, .e-con.dark-block, .e-con.cta-xl, .e-con.ticker { padding: var(--padding-top) var(--padding-right) var(--padding-bottom) var(--padding-left); }
/* The template's two-column .dark-block rule must not apply to the single-column numbers block */
.e-con.dark-block.v1w-numbers { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.calc label { flex-wrap: wrap; align-items: baseline; }
.calc label input[type=range] { flex: 0 0 100%; }

/* Whole-card links: positioned from the card, not the widget. Left alone while editing, where
   Elementor anchors its own handles to the widget. */
body:not(.elementor-editor-active) .e-con.feature.v1w-linked > .elementor-widget { position: static; }

/* Demo form */
.v1w-form [hidden] { display: none !important; }
.v1w-checks .lbl { display: block; width: 100%; font: 600 14px/22px var(--font-sans); color: var(--ink); }
.v1w-checks input { width: auto; height: auto; margin: 0; }
