.vvi-panel{--vvi-accent:#245b56;--vvi-border:#dce5e3;box-sizing:border-box;background:#fff;border:1px solid var(--vvi-border);border-radius:18px;padding:clamp(20px,3vw,32px);margin:28px 0;color:#233b39;box-shadow:0 8px 32px #223a3807;clear:both}.vvi-panel *{box-sizing:border-box}.vvi-panel h1,.vvi-panel h2,.vvi-panel h3{color:#183e39;line-height:1.2;margin:8px 0 16px;letter-spacing:-.025em}.vvi-panel p{line-height:1.6;margin:12px 0}.vvi-eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;color:#52736d}.vvi-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.vvi-choice{display:flex!important;align-items:flex-start;gap:12px;border:1px solid var(--vvi-border);border-radius:12px;padding:18px;cursor:pointer;transition:background .15s,border-color .15s}.vvi-choice:has(input:checked){border-color:var(--vvi-accent);background:#eff7f4;box-shadow:0 0 0 1px var(--vvi-accent)}.vvi-choice:has(input:disabled){opacity:.5;cursor:not-allowed}.vvi-choice input{margin-top:5px;accent-color:var(--vvi-accent)}.vvi-choice strong{display:block;font-size:15px}.vvi-choice small{display:block;font-size:13px;line-height:1.5;color:#546d69;margin-top:6px}.vvi-course{border:1px solid var(--vvi-border);border-radius:12px;margin-top:16px;overflow:hidden}.vvi-course summary{padding:18px;background:#f6f9f8;cursor:pointer;font-weight:650;line-height:1.5}.vvi-course summary span{display:inline-block;font-size:12px;font-weight:500;background:#e5eeeb;padding:3px 9px;border-radius:20px;margin-left:8px}.vvi-course>p,.vvi-course>form{margin:18px}.vvi-person{padding:20px;border-top:1px solid var(--vvi-border)}.vvi-person-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.vvi-use-me{color:#245b56;background:transparent;border:0;text-decoration:underline;font:inherit;font-size:12px;padding:4px;cursor:pointer}.vvi-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.vvi-grid label,.vvi-landing label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.vvi-panel input:not([type=checkbox]):not([type=radio]),.vvi-panel select{width:100%;border:1px solid #bdceca!important;background:#fff;border-radius:8px;padding:12px!important;font:inherit;color:#233b39;min-height:46px}.vvi-panel input:focus-visible,.vvi-panel button:focus-visible,.vvi-panel a:focus-visible,.vvi-course summary:focus-visible{outline:3px solid #76b8ad;outline-offset:3px}.vvi-panel .button{display:inline-block;background:#245b56;color:#fff;border:0;border-radius:9px;padding:12px 18px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;margin:4px 0}.vvi-footnote,.vvi-later-note{font-size:13px;color:#526b65}.vvi-error{background:#fff1ee;color:#8b2e20;padding:12px;border-radius:8px}.vvi-landing{margin:0;padding:24px;background:#f1f5f3;font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.vvi-landing main{max-width:660px;margin:6vh auto}.vvi-panel [hidden]{display:none!important}.woocommerce-checkout #vvi_kind_field select,.woocommerce-checkout #vvi_iva_field select,.woocommerce-checkout #vvi_doc_type_field select{min-height:44px}.woocommerce-checkout #vvi_kind_field{margin-top:16px}.woocommerce-checkout .vvi-field label{font-weight:600}@media(max-width:640px){.vvi-options,.vvi-grid{grid-template-columns:1fr}.vvi-person{padding:16px}.vvi-course summary{padding:14px}.vvi-panel{padding:18px}.vvi-person-heading{align-items:flex-start}.vvi-landing{padding:12px}}

.vvi-copy-previous{margin:16px 20px 0;border:0;background:none;color:#245b56;text-decoration:underline;cursor:pointer;font:inherit;font-size:12px}.vvi-landing .vvi-use-me{display:none}

.vvi-checkout-active .woocommerce-billing-fields .form-row label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.vvi-checkout-active .woocommerce-billing-fields input.input-text,.vvi-checkout-active .woocommerce-billing-fields select{box-sizing:border-box;border:1px solid #bdceca;border-radius:8px;padding:12px;background:#fff;min-height:46px;color:#233b39}.vvi-checkout-active .woocommerce-billing-fields .select2-selection--single{min-height:46px;border-color:#bdceca;border-radius:8px;display:flex;align-items:center}.vvi-checkout-active .woocommerce-billing-fields .select2-selection__arrow{top:10px}.vvi-checkout-active .woocommerce-billing-fields .form-row{margin-bottom:18px}

/* 1.2: shared form system for native WooCommerce, Divi and added checkout fields.
   Scoped to a managed checkout: no admin, catalogue, or gateway iframe changes. */
body.vvi-checkout-active {
  --vvi-field-bg:#fff;
  --vvi-field-border:#c8d6d2;
  --vvi-field-text:#243c37;
  --vvi-field-focus:#28675b;
  --vvi-field-radius:10px;
}
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.woocommerce-account-fields,.woocommerce-form-login,.checkout_coupon,.vvi-panel) :is(input:not([type]),input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=url],input[type=search],input[type=date],input[type=datetime-local],input[type=time],input[type=month],input[type=week],select,textarea) {
  box-sizing:border-box!important;
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:48px!important;
  height:auto;
  margin:0!important;
  padding:12px 14px!important;
  border:1px solid var(--vvi-field-border)!important;
  border-radius:var(--vvi-field-radius)!important;
  background-color:var(--vvi-field-bg)!important;
  color:var(--vvi-field-text)!important;
  font-family:inherit!important;
  font-size:16px!important;
  font-weight:400!important;
  line-height:1.45!important;
  box-shadow:none!important;
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.woocommerce-account-fields,.woocommerce-form-login,.checkout_coupon,.vvi-panel) :is(input,select,textarea):focus {
  border-color:var(--vvi-field-focus)!important;
  outline:2px solid var(--vvi-field-focus)!important;
  outline-offset:2px!important;
  box-shadow:0 0 0 4px #28675b14!important;
}
body.vvi-checkout-active :is(form.checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.vvi-panel) :is(input,textarea)::placeholder {color:#7b8b85!important;opacity:1!important;}
body.vvi-checkout-active :is(form.checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.vvi-panel) textarea:not([hidden]) {min-height:124px!important;resize:vertical;}
body.vvi-checkout-active :is(form.checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.vvi-panel) select:not([multiple]):not(.select2-hidden-accessible) {padding-right:38px!important;cursor:pointer;}
body.vvi-checkout-active :is(form.checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.vvi-panel) select[multiple] {min-height:120px!important;}
body.vvi-checkout-active :is(form.checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.vvi-panel) :is(input,select,textarea):disabled {background-color:#f1f5f3!important;color:#7c8b85!important;cursor:not-allowed;}
body.vvi-checkout-active :is(form.checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.vvi-panel) :is(input[type=checkbox],input[type=radio]) {accent-color:var(--vvi-field-focus);width:18px;min-width:18px;height:18px;vertical-align:middle;margin:0 8px 0 0;cursor:pointer;}
body.vvi-checkout-active :is(form.checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.vvi-panel) .form-row > label:not(.checkbox) {display:block!important;margin:0 0 8px!important;padding:0!important;font-family:inherit!important;font-size:14px!important;font-weight:600!important;line-height:1.5!important;color:var(--vvi-field-text)!important;}
body.vvi-checkout-active :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper) {display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 18px;align-items:start;}
body.vvi-checkout-active :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper)::before,
body.vvi-checkout-active :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper)::after {display:none!important;}
body.vvi-checkout-active :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper) > .form-row {grid-column:1 / -1;float:none!important;clear:none!important;width:auto!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;}
body.vvi-checkout-active :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper) > :is(.form-row-first,.form-row-last):not(.form-row-wide) {grid-column:auto;}
body.vvi-checkout-active .woocommerce-input-wrapper {display:block;width:100%;min-width:0;}
body.vvi-checkout-active .form-row :is(.description,.optional) {font-size:12px;color:#64776f;}
body.vvi-checkout-active .form-row .required {color:#a53d32;text-decoration:none;}
body.vvi-checkout-active .form-row.woocommerce-invalid :is(input,select,textarea,.select2-selection) {border-color:#bb4438!important;}
body.vvi-checkout-active :is(.form-row[hidden],.vvi-participant-groups[hidden],.vvi-later-note[hidden]) {display:none!important;}
/* SelectWoo/Select2 owns an invisible backing select; never reveal it. */
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields,.woocommerce-account-fields,.woocommerce-form-login,.checkout_coupon,.vvi-panel) select.select2-hidden-accessible {position:absolute!important;width:1px!important;min-width:0!important;max-width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;border:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;}
body.vvi-checkout-active .select2-container {width:100%!important;max-width:100%!important;min-width:0!important;}
body.vvi-checkout-active .select2-container .select2-selection--single {box-sizing:border-box!important;display:flex!important;align-items:center;min-height:48px!important;height:auto!important;border:1px solid var(--vvi-field-border)!important;border-radius:var(--vvi-field-radius)!important;background:#fff!important;box-shadow:none!important;padding:0!important;}
body.vvi-checkout-active .select2-container .select2-selection__rendered {font-family:inherit!important;font-size:16px!important;color:var(--vvi-field-text)!important;line-height:1.45!important;padding:12px 38px 12px 14px!important;}
body.vvi-checkout-active .select2-container .select2-selection__arrow {top:50%!important;right:10px!important;transform:translateY(-50%);}
body.vvi-checkout-active .select2-container--focus .select2-selection,body.vvi-checkout-active .select2-container--open .select2-selection {border-color:var(--vvi-field-focus)!important;outline:2px solid var(--vvi-field-focus);outline-offset:2px;}
body.vvi-checkout-active .select2-dropdown {border:1px solid var(--vvi-field-border)!important;border-radius:10px!important;box-shadow:0 8px 24px #243c3720!important;overflow:hidden;}
body.vvi-checkout-active .select2-search--dropdown {padding:10px;}
body.vvi-checkout-active .select2-search--dropdown .select2-search__field {box-sizing:border-box;width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--vvi-field-border)!important;border-radius:7px;font:inherit;}
body.vvi-checkout-active .select2-results__option {padding:10px 14px;font-size:15px;line-height:1.4;}
body.vvi-checkout-active .select2-container--default .select2-results__option--highlighted[aria-selected],body.vvi-checkout-active .select2-results__option--highlighted[aria-selected] {background:#28675b!important;color:#fff!important;}
@media(max-width:600px){body.vvi-checkout-active :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper){grid-template-columns:minmax(0,1fr);gap:18px;}body.vvi-checkout-active :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,.woocommerce-additional-fields__field-wrapper)>.form-row{grid-column:1 / -1!important;}}
@media(prefers-reduced-motion:reduce){body.vvi-checkout-active :is(input,select,textarea){transition:none!important;}}
body.vvi-checkout-active .select2-container .select2-selection--single {position:relative;}
body.vvi-checkout-active .select2-container .select2-selection__arrow {position:absolute!important;width:20px;height:20px;line-height:20px;text-align:center;}

/* 1.2.1: prevent theme sizing of the native wrapper from shrinking inputs. */
body.vvi-checkout-active .form-row .woocommerce-input-wrapper{box-sizing:border-box!important;display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;}

/* Participant account controls. */
.vvi-account{border-top:1px solid #dce5e3;margin-top:18px;padding-top:12px}.vvi-account>p>label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.vvi-account-existing{padding:12px;background:#eff7f4;border-radius:8px;font-size:13px}.vvi-password-wrap{display:block;position:relative}.vvi-panel .vvi-person .vvi-password-wrap input[data-account-password],body.vvi-checkout-active .vvi-panel .vvi-person .vvi-password-wrap input[data-account-password]{padding-right:78px!important}.vvi-password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#245b56;font:inherit;font-size:12px;font-weight:600;padding:8px;cursor:pointer}.vvi-password-toggle:focus-visible{outline:2px solid #245b56;outline-offset:2px}

/* 1.3.1: one accessible visibility control, without theme/Woo duplicate icons. */
.vvi-panel .vvi-password-wrap .vvi-password-toggle{display:flex!important;align-items:center!important;justify-content:center!important;width:40px!important;height:40px!important;min-width:0!important;min-height:0!important;padding:8px!important;margin:0!important;right:6px!important;top:50%!important;line-height:1!important;background:transparent!important;border:0!important;box-shadow:none!important;transform:translateY(-50%)!important;}
.vvi-panel .vvi-password-wrap .vvi-password-toggle::before,.vvi-panel .vvi-password-wrap .vvi-password-toggle::after{content:none!important;display:none!important;}
.vvi-panel .vvi-password-wrap .vvi-password-toggle svg{display:block!important;width:22px!important;height:22px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}
.vvi-password-toggle[aria-pressed="true"] .vvi-eye-slash{display:none;}
.vvi-panel .vvi-password-wrap .show-password-input{display:none!important;}
.vvi-password-wrap input::-ms-reveal,.vvi-password-wrap input::-ms-clear{display:none;}

/* 1.3.2: readable checkout errors even with Divi notice colors. */
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce) .woocommerce-error{box-sizing:border-box!important;background:#fff5f3!important;color:#742d25!important;border:1px solid #e6b8b0!important;border-left:4px solid #b84c3f!important;border-radius:12px!important;padding:18px 20px!important;margin:20px 0!important;box-shadow:none!important;font-family:inherit!important;font-size:14px!important;line-height:1.6!important;list-style:none!important;float:none!important;width:100%!important;max-width:100%!important;}
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce) .woocommerce-error::before{display:none!important;content:none!important;}
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce) .woocommerce-error li{color:#742d25!important;font-size:14px!important;line-height:1.6!important;margin:6px 0!important;padding:0!important;overflow-wrap:anywhere;}
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce) .woocommerce-error :is(a,strong){color:#742d25!important;font-size:inherit!important;}
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce) .woocommerce-error a{text-decoration:underline!important;text-underline-offset:3px;}
body.vvi-checkout-active :is(form.checkout,form.woocommerce-checkout,.woocommerce) .woocommerce-error .vvi-error-title{font-weight:700!important;margin-bottom:12px!important;}

/* 1.4: course seats in checkout. */
.vvi-quantities{margin:22px 0;padding:18px;border:1px solid #dce5e3;border-radius:12px;background:#f6f9f8}.vvi-quantities h4{margin:0 0 8px;color:#183e39}.vvi-quantities>p{font-size:13px}.vvi-quantity-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid #dce5e3}.vvi-quantity-row>label{flex:1;font-size:14px;line-height:1.5}.vvi-stepper{display:flex;align-items:center;gap:5px;flex-shrink:0}.vvi-stepper button{width:36px;height:40px;padding:0;border:1px solid #c8d6d2;border-radius:8px;background:white;color:#245b56;font-size:22px;cursor:pointer}.vvi-stepper button:disabled{opacity:.5;cursor:wait}body.vvi-checkout-active .vvi-panel .vvi-stepper input[data-vvi-quantity]{width:66px!important;min-width:66px!important;text-align:center;padding:10px 3px!important;appearance:textfield}.vvi-stepper input::-webkit-inner-spin-button{appearance:none}.vvi-quantity-feedback:empty{display:none}@media(max-width:480px){.vvi-quantity-row{align-items:flex-start;flex-direction:column}}

/* 1.4.1: keep native contact names adjacent after checkout field editors. */
@media(min-width:601px){body.vvi-checkout-active .woocommerce-billing-fields__field-wrapper>#billing_first_name_field{grid-column:1!important}body.vvi-checkout-active .woocommerce-billing-fields__field-wrapper>#billing_last_name_field{grid-column:2!important}}
.vvi-stepper .woocommerce-input-wrapper{width:auto!important;flex:0 0 66px!important}
