/* 1Venda on WordPress + Elementor.
   The five reference stylesheets load first and style every v1-* class exactly as in the
   static build. This file maps Elementor's container/widget markup onto those classes and
   styles the few section layouts (v1w-*) the WordPress build adds. */

/* ---------- Page chrome ---------- */
body.v1-site { display: block; }
.elementor-widget-container > p:last-child { margin-bottom: 0; }
.v1-site .elementor-widget:not(:last-child) { margin-block-end: 0; }

/* Elementor containers: our sections own their padding; nothing else adds any. */
.e-con.v1w-sec { --padding-top: var(--space-9); --padding-bottom: var(--space-9); --padding-left: 20px; --padding-right: 20px; --margin-top: 0; --margin-bottom: 0; --gap: 0; }
.e-con.v1w-sec > .e-con-inner { --gap: 0; }
.v1w-sec .e-con { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 0; }
.e-con.v1w-sec-world { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; border-top: 0; }
.e-con.v1w-sec-world > .e-con-inner, .e-con.v1w-sec-world .elementor-widget-html, .e-con.v1w-sec-world .elementor-widget-container { width: 100%; }
.e-con.v1w-sec-world { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.e-con.v1w-hero { --padding-top: 56px; --padding-bottom: 72px; }
.e-con.v1w-sec-quote, .e-con.v1w-sec-numbers, .e-con.v1w-sec-dark, .e-con.v1w-sec-calc { --padding-top: 0; --padding-bottom: var(--space-9); }
.e-con.v1w-sec-ticker + .e-con.v1w-sec { --padding-top: var(--space-8); }
@media (max-width: 760px) { .e-con.v1w-sec { --padding-top: 72px; --padding-bottom: 72px; } .e-con.v1w-hero { --padding-top: 32px; --padding-bottom: 48px; } }

/* Elementor's `.elementor img { height:auto }` beats the template's class rules; restate the logos. */

/* ---------- Native widgets wearing the design system ---------- */
.elementor-widget.v1w-eyebrow .elementor-heading-title { display: inline-flex; gap: 10px; align-items: center; font: 500 12px/16px var(--font-sans); letter-spacing: 1.4px; text-transform: uppercase; color: var(--ink-muted); margin: 0 0 14px; }
.elementor-widget.v1w-eyebrow .elementor-heading-title::before { content: ""; width: 24px; height: 1px; background: currentColor; }
.e-con.v1w-sechead-l .elementor-widget.v1w-eyebrow .elementor-heading-title::before { counter-increment: sec; content: "(" counter(sec, decimal-leading-zero) ")"; width: auto; height: auto; background: none; font: 400 15px/16px var(--font-serif); font-style: italic; letter-spacing: 0; text-transform: none; color: var(--ink); }
.elementor-widget.v1w-h .elementor-heading-title { font-family: var(--font-display); font-weight: 400; color: var(--ink); margin: 0; letter-spacing: -0.045em; }
.elementor-widget.v1-h-xl .elementor-heading-title { font-size: clamp(48px, 6.6vw, 104px); line-height: 0.95; }
.elementor-widget.v1-h-l .elementor-heading-title { font-size: clamp(40px, 5vw, 76px); line-height: 0.98; }
.elementor-widget.v1-h-m .elementor-heading-title { font-size: clamp(32px, 3.6vw, 52px); line-height: 1.02; }
.elementor-widget.v1w-h .v1-grad-text { font-family: var(--font-serif); font-style: italic; font-weight: 400; letter-spacing: -0.01em; font-size: 1.06em; color: var(--tenant-primary); }
.elementor-widget.v1w-h .v1-split .w { padding-bottom: 0.14em; margin-bottom: -0.14em; }
.elementor-widget.v1w-lede .elementor-widget-container, .elementor-widget.v1w-copy .elementor-widget-container { color: var(--ink-body); font-size: 18px; line-height: 32px; }
.elementor-widget.v1w-lede .elementor-widget-container { max-width: 580px; margin: 28px 0 36px; }
.elementor-widget.v1w-copy .elementor-widget-container { margin: 20px 0 8px; font-size: 17px; line-height: 30px; }
.elementor-widget.v1w-sechead-p .elementor-widget-container { color: var(--ink-muted); max-width: 460px; font-size: 16px; line-height: 30px; }
.elementor-widget-image img { border-radius: var(--radius-lg); }

/* ---------- Section head (eyebrow + headline left, intro right) ---------- */
.e-con.v1w-sechead { align-items: end; border-top: 1px solid var(--line); padding-top: 28px; margin-bottom: 56px; }
.e-con.v1w-sechead > .v1w-sechead-p { justify-self: end; }
.e-con.v1w-sechead-l { --display: flex; --flex-direction: column; }
@media (max-width: 767px) { .e-con.v1w-sechead { margin-bottom: 40px; } .e-con.v1w-sechead > .v1w-sechead-p { justify-self: start; } }
.v1-site main { counter-reset: sec; }

/* ---------- Hero ---------- */
.e-con.v1w-hero-grid { align-items: center; }
.e-con.v1w-hero-l { --display: flex; --flex-direction: column; --justify-content: center; }
.e-con.v1w-hero-l .elementor-widget.v1w-eyebrow .elementor-heading-title { margin-bottom: 24px; }
.e-con.v1w-hero-r { --display: flex; }
.e-con.v1w-hero-r .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-xl); box-shadow: var(--shadow-card); }
.e-con.v1w-hero-home { --padding-top: 72px; --padding-bottom: 88px; position: relative; }
.e-con.v1w-hero-home::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 50% at 85% 10%, color-mix(in srgb, var(--tenant-primary) 14%, transparent), transparent 70%), radial-gradient(40% 40% at 10% 90%, color-mix(in srgb, var(--tenant-secondary) 10%, transparent), transparent 70%); }

/* ---------- Two columns ---------- */
.e-con.v1w-twocol { align-items: center; }
.e-con.v1w-twocol-1 > .v1w-col-text { max-width: 820px; }
.e-con.v1w-col-text, .e-con.v1w-col-media { --display: flex; --flex-direction: column; }
.e-con.v1w-col-media .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-xl); }














/* ---------- Calculator ---------- */
.v1w-calc { grid-template-columns: 1.1fr 1fr; }
.v1w-calc .v1w-toggle { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 8px; }
.v1w-calc .v1w-toggle label { cursor: pointer; }
.v1w-calc .v1w-toggle input { position: absolute; opacity: 0; }
.v1w-calc .v1w-toggle span { display: inline-block; padding: 8px 16px; border-radius: var(--radius-pill); border: 1px solid rgba(255, 255, 255, 0.25); color: var(--on-inverse); font: 600 14px/24px var(--font-sans); }
.v1w-calc .v1w-toggle input:checked + span { background: #ffffff; color: #111111; border-color: #ffffff; }
.v1w-calc .v1w-note { font-size: 13px; line-height: 20px; color: var(--on-inverse-muted); margin-top: 16px; }
.v1w-calc .result [hidden] { display: none; }
.v1w-calc label { margin-top: 18px; }
.v1w-calc label output { float: right; font-weight: 700; color: var(--on-inverse); }
.v1w-calc input[type=range] { width: 100%; accent-color: var(--tenant-highlight); }

/* ---------- Demo request form ---------- */
.v1w-form { max-width: 880px; }
.v1w-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.v1-field { display: flex; flex-direction: column; gap: 6px; }
.v1-field.wide, .v1w-checks { grid-column: 1 / -1; }
.v1-field .lbl { font: 600 14px/22px var(--font-sans); color: var(--ink); }
.v1-field .lbl small { font-weight: 500; color: var(--ink-muted); }
.v1-field input:not([type=checkbox]), .v1-field select, .v1-field textarea { font: 500 16px/26px var(--font-sans); color: var(--ink); background: var(--surface-soft); border: 1px solid transparent; border-radius: var(--radius-sm); padding: 12px 16px; width: 100%; }
.v1-field input:focus, .v1-field select:focus, .v1-field textarea:focus { outline: 2px solid var(--focus-ring); outline-offset: 2px; border-color: var(--line); }
.v1-field .err { display: none; font-size: 13px; line-height: 20px; color: var(--danger); }
.v1-field.is-bad .err { display: block; }
.v1-field.is-bad input, .v1-field.is-bad select, .v1-field.is-bad textarea { border-color: var(--danger); }
.v1w-checks { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 10px; }
.v1w-checks legend { padding: 0; margin-bottom: 8px; }
.v1w-checks label { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--line); border-radius: var(--radius-pill); font-size: 14px; cursor: pointer; }
.v1w-checks label:has(input:checked) { border-color: var(--tenant-primary); background: color-mix(in srgb, var(--tenant-primary) 8%, transparent); }
.v1w-consent { flex-direction: row; align-items: start; gap: 12px; font-size: 14px; line-height: 22px; color: var(--ink-body); }
.v1w-consent input { margin-top: 4px; width: 18px; height: 18px; }
.v1w-hp { position: absolute; left: -9999px; }
.v1w-form-msg { color: var(--danger); margin-top: 16px; }
.v1w-form-ok { margin-top: 24px; padding: 20px 24px; border-radius: var(--radius-md); background: color-mix(in srgb, var(--success) 10%, transparent); color: var(--success); font-weight: 600; }
@media (max-width: 680px) { .v1w-fields { grid-template-columns: 1fr; } }

/* ---------- Dark theme touch-ups for WordPress-specific bits ---------- */
[data-theme="dark"] .v1w-shot, [data-theme="dark"] .v1w-logo, [data-theme="dark"] .v1w-table-wrap { background: var(--surface-soft); }
[data-theme="dark"] .v1w-fig-shot img { border-color: rgba(255, 255, 255, 0.08); }

/* ---------- Elementor editor: keep reveal targets visible while editing ---------- */
.elementor-editor-active .v1-reveal, .elementor-editor-active .v1-split .w > span { opacity: 1 !important; transform: none !important; filter: none !important; }
