/* CF: Extended forms — popup, validation messages and success state.
   Form fields are styled by the theme (standard Form Builder classes). */
/* Popup source (shown inside a dialog only) */
.cf-ef-popup[hidden]{display:none!important}
/* Native CS-Cart dialog: space between the last field and the footer with buttons */
.ui-dialog .cf-ef-popup form{padding-bottom:12px}

/* Own dialog — themes without the CS-Cart core JS. Same structure as the CS-Cart dialog:
   title bar with a divider, content, buttons as a full-width footer */
.cf-ef-modal{--cf-ef-pad:24px;position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.55);opacity:0;transition:opacity .2s ease}
.cf-ef-modal[hidden]{display:none}
.cf-ef-modal.is-open{opacity:1}
.cf-ef-modal__dialog{box-sizing:border-box;position:relative;display:flex;flex-direction:column;width:100%;max-width:720px;max-height:calc(100vh - 32px);overflow:hidden;border-radius:var(--cf__main-radius,16px);background:var(--cf__bg,#fff);color:var(--cf__text,#111827);box-shadow:0 24px 64px rgba(15,23,42,.25);transform:translateY(12px);transition:transform .2s ease}
.cf-ef-modal.is-open .cf-ef-modal__dialog{transform:none}
.cf-ef-modal__header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px var(--cf-ef-pad);border-bottom:1px solid var(--cf__border,rgba(15,23,42,.12))}
.cf-ef-modal__title{font-size:20px;font-weight:700;line-height:1.3}
.cf-ef-modal__close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:-6px -8px -6px 0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;opacity:.6}
.cf-ef-modal__close:hover{opacity:1;background:rgba(15,23,42,.06)}
.cf-ef-modal__body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--cf-ef-pad) var(--cf-ef-pad) 0}
.cf-ef-modal .buttons-container-picker{position:sticky;bottom:0;z-index:1;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;gap:12px;width:auto!important;max-width:none!important;margin:24px calc(-1 * var(--cf-ef-pad)) 0!important;padding:20px var(--cf-ef-pad)!important;border:0!important;border-radius:0!important;background:var(--cf__bg-light,#f3f4f6)!important}
.cf-ef-modal .cf-ef-success{padding-bottom:var(--cf-ef-pad)}
html.cf-ef-lock,html.cf-ef-lock body{overflow:hidden}
.cf-ef-error{display:block;margin-top:4px;font-size:13px;line-height:1.4;color:var(--cf__red,#e5484d)}
.cf-ef-invalid{border-color:var(--cf__red,#e5484d)!important}
.cf-ef-alert{grid-column:1/-1;margin:0;padding:12px 16px;border-radius:12px;background:rgba(229,72,77,.08);color:var(--cf__red,#c52f34);font-size:14px;line-height:1.45}
.cf-ef-alert[hidden]{display:none}
form.cf-ef-busy button[type=submit]{opacity:.6;pointer-events:none}
.cf-ef-success{display:flex;flex-direction:column;align-items:center;gap:14px;padding:32px 16px;text-align:center}
.cf-ef-success__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:rgba(22,163,74,.12);color:#16a34a}
.cf-ef-success__text{max-width:420px;font-size:16px;line-height:1.5}
@media (max-width:767px){.cf-ef-modal{--cf-ef-pad:16px;padding:0;align-items:flex-end}.cf-ef-modal__dialog{max-height:92vh;border-radius:16px 16px 0 0}}

/* Agreements (consents) */
.cf-ef-agreements{grid-column:1/-1;display:flex;flex-direction:column;gap:12px;margin:0;}
.cf-ef-agreements__all{display:flex;align-items:center;gap:8px;margin:0;font-weight:600;cursor:pointer}
.cf-ef-agreements__divider{width:100%;margin:2px 0;border:0;border-top:1px solid var(--cf__border,rgba(15,23,42,.15))}
.cf-ef-agreement{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:flex-start;gap:0 8px!important;max-width:none!important;margin:0}
.cf-ef-agreement__label{flex:1 1 0;min-width:0;margin:0;font-size:14px;font-weight:400!important;line-height:1.5;color:inherit;cursor:pointer}
.cf-ef-agreement__label a{color:var(--cf__link,var(--cf__blue,#2563eb));text-decoration:underline;text-underline-offset:2px}
.cf-ef-agreement .cf-ef-error{flex-basis:100%;margin-left:30px}
.cf-ef-agreement input[type=checkbox],.cf-ef-agreements__all input[type=checkbox]{-webkit-appearance:none;appearance:none;flex:0 0 auto;box-sizing:border-box;width:22px;height:22px;margin:0!important;padding:0;border:1px solid var(--cf__border,#d0d5dd);border-radius:6px;background:var(--cf__bg,#fff) center/14px 14px no-repeat;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.cf-ef-agreement input[type=checkbox]:hover,.cf-ef-agreements__all input[type=checkbox]:hover{border-color:var(--cf__blue,#2563eb)}
.cf-ef-agreement input[type=checkbox]:checked,.cf-ef-agreements__all input[type=checkbox]:checked{border-color:var(--cf__blue,#2563eb);background-color:var(--cf__blue,#2563eb);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 12.5 10 17.5 19 7'/%3E%3C/svg%3E")}
.cf-ef-agreement input[type=checkbox]:focus-visible,.cf-ef-agreements__all input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.2)}
.cf-ef-agreement input[type=checkbox].cf-ef-invalid{outline:none;border-color:var(--cf__red,#e5484d)!important;box-shadow:0 0 0 3px rgba(229,72,77,.15)}
.cf-ef-agreement__label{padding-top:1px}
.cf-ef-agreement .cf-ef-error{margin-left:30px}

/* Content elements: title and text (Form Builder types of the add-on) */
.cf-ef-title{grid-column:1/-1;margin:20px 0 4px;padding:0;font-family:var(--cf__font-heading,inherit);font-weight:600;line-height:1.25;letter-spacing:-0.01em;color:inherit}
.cf-ef-title:first-child{margin-top:0}
.cf-ef-title--s{font-size:16px}
.cf-ef-title--m{font-size:var(--cf__font-size-big,20px)}
.cf-ef-title--l{font-size:var(--cf__font-size-h3,24px)}
.cf-ef-title--xl{font-size:var(--cf__font-size-h2,32px);letter-spacing:-0.02em}
.cf-ef-text{grid-column:1/-1;margin:0 0 4px;font-size:inherit;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.cf-ef-text--bold{font-weight:600}
.cf-ef-text--italic{font-style:italic}
.cf-ef-text--muted{opacity:.5}
@supports (color:color-mix(in srgb,red 50%,transparent)){.cf-ef-text--muted{opacity:1;color:color-mix(in srgb,currentColor 50%,transparent)}}
.cf-ef-text--large{font-size:var(--cf__font-size-h4,18px);line-height:1.4}
.cf-ef-text--html{white-space:normal}
.cf-ef-text--html>:first-child{margin-top:0}
.cf-ef-text--html>:last-child{margin-bottom:0}
.cf-ef-text--html img{max-width:100%;height:auto}
.cf-ef-sep{grid-column:1/-1}
.cf-ef-sep--space{display:block;height:24px;margin:0;border:0}
/* Form layout: fields in zones (1 — one column; 2 — two columns; 3 — a big column / a full-width row + two zones) */
.cf-ef-form-wrap{container-type:inline-size}
.cf-ef-zones{display:grid;grid-template-columns:minmax(0,1fr);grid-column:1/-1;gap: 24px;align-items:start}
.cf-ef-zone{min-width:0;display:grid;gap:12px;}
@container (min-width:560px){
.cf-ef-zones--two{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"z1 z2"}
.cf-ef-zones--left{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"z1 z2" "z1 z3"}
.cf-ef-zones--right{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"z1 z3" "z2 z3"}
.cf-ef-zones--top{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"z1 z1" "z2 z3"}
.cf-ef-zones--bottom{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"z1 z2" "z3 z3"}
.cf-ef-zones:not(.cf-ef-zones--one)>.cf-ef-zone--1{grid-area:z1;}
.cf-ef-zones:not(.cf-ef-zones--one)>.cf-ef-zone--2{grid-area:z2;}
.cf-ef-zones:not(.cf-ef-zones--one)>.cf-ef-zone--3{grid-area:z3;}
}
/* Space between the page / block description and the form */
[class*="form-builder__description"] + .cf-ef-form-wrap{margin-top:24px}
/* Layouts with zones (not one column): the fields take the whole width of their zone (themes limit them, e.g. UniTheme — 500px) */
.cf-ef-form-wrap .cf-ef-zones:not(.cf-ef-zones--one) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
.cf-ef-form-wrap .cf-ef-zones:not(.cf-ef-zones--one) select,
.cf-ef-form-wrap .cf-ef-zones:not(.cf-ef-zones--one) textarea,
.cf-ef-form-wrap .cf-ef-zones:not(.cf-ef-zones--one) [class*="input-append"]{width:100%;max-width:none;box-sizing:border-box}
/* Zone background: UniTheme (--gap-s/--gap-sm, --fill-gray, --border-radius-box) → cifro (--cf__*) → defaults; colour from the form settings */
.cf-ef-zones:has(>.cf-ef-zone--bg){row-gap:var(--gap-sm,var(--cf__gap-md,16px));align-items:stretch}
.cf-ef-zone--bg{padding:var(--gap-s,var(--cf__gap-md,16px)) var(--gap-sm,var(--cf__gap-xl,24px));background:var(--cf-ef-zone-bg,var(--fill-gray,var(--cf__soft-gray,#f4f5f7)));border-radius:var(--border-radius-box,var(--cf__radius,12px))}
.cf-ef-zone--bg>:first-child{margin-top:0}
.cf-ef-zone--bg>:last-child{margin-bottom:0}
.cf-ef-zones--one{display:block}
