/* Elementor glue for the design system: each page section is one full-width Elementor container holding one
   HTML or Shortcode widget, so containers must add no padding, gap or width limits of their own. */
.e-con.vwa-sec { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; --width: 100%; --content-width: 100%; }
.e-con.vwa-sec > .elementor-widget, .e-con.vwa-sec > .e-con-inner > .elementor-widget { width: 100%; max-width: 100%; margin: 0; }
.vwa-sec .elementor-widget-container { margin: 0; padding: 0; }
.vwa-sec .elementor-shortcode { display: block; }
/* Theme Builder header sits on top of the hero like the static site */
.elementor-location-header { position: relative; z-index: 60; }
.elementor-location-header .hdr { position: fixed; }
body.admin-bar .hdr { top: 32px; }
@media (max-width: 782px) { body.admin-bar .hdr { top: 46px; } }
/* Pages use the full-width Elementor template: no theme title or wrappers */
.page-template-elementor_header_footer .site-main { max-width: none; padding: 0; }

/* Layout containers that carry design-system classes (e.g. the Enter page's "wrap entry" grid) */
.e-con.entry { display: grid !important; }
.e-con.wrap { --width: auto; }

/* Elementor Pro entry form (form name vwa_entry) styled like the design's .form */
.vwa-form .elementor-form { background: var(--paper); border: 1px solid var(--line); padding: clamp(24px, 3vw, 40px); }
.vwa-form .elementor-form-fields-wrapper { row-gap: 16px; margin: 0 -9px; }
.vwa-form .elementor-field-group { padding: 0 9px; margin-bottom: 0; }
.vwa-form .elementor-field-label { font: 500 11px/1.2 var(--text) !important; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2) !important; margin-bottom: 8px; }
.vwa-form .elementor-field-textual, .vwa-form select.elementor-field { font: 400 16px/1.3 var(--text) !important; color: var(--ink) !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; padding: 10px 0 !important; min-height: 44px; box-shadow: none !important; }
.vwa-form .elementor-field-textual:focus, .vwa-form select.elementor-field:focus { border-color: var(--gold) !important; outline: none; }
.vwa-form .elementor-select-wrapper::before { color: var(--ink-2); }
.vwa-form .elementor-field-subgroup { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; }
.vwa-form .elementor-field-option { display: flex; gap: 10px; align-items: center; font: 400 15px/1.4 var(--text); color: var(--ink); }
.vwa-form .elementor-field-option input { width: 18px; height: 18px; accent-color: var(--green); }
.vwa-form .elementor-field-type-acceptance .elementor-field-option label { font: 400 14px/1.5 var(--text); letter-spacing: .02em; text-transform: none; }
.vwa-form .elementor-button { background: var(--ink) !important; color: var(--paper) !important; border: 1px solid var(--ink) !important; border-radius: 0 !important; font: 500 12px/1 var(--text) !important; letter-spacing: .2em; text-transform: uppercase; padding: 20px 28px !important; transition: background .3s, color .3s; }
.vwa-form .elementor-button:hover { background: transparent !important; color: var(--ink) !important; }
.vwa-form .elementor-message { font: 400 15px/1.5 var(--text); }
@media (max-width: 640px) { .vwa-form .elementor-field-subgroup { grid-template-columns: 1fr; } }
