/* Ellie Forms: fields use simple classes a theme can style (.field, .fgrid, .chips, .check, .phone, .fstep);
   this file adds the form states and safe defaults for other themes. */
:where(.ellie-form .fstep){display:none}
:where(.ellie-form .fstep.on){display:block}
:where(.ellie-form .btn svg,.ellie-form button svg){width:1em;height:1em;flex:none}
:where(.ellie-form .review){display:grid}
.ellie-form .sf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.ellie-form .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ellie-form .fgrid .full{grid-column:1 / -1}
.ellie-form .field{display:flex;flex-direction:column;gap:7px;min-width:0}
.ellie-form .field .err{display:none;font-size:12.5px;color:var(--err,#B42318)}
.ellie-form .field.bad .err{display:block}
.ellie-form .field.bad .chips span{border-color:var(--err,#B42318)}
.ellie-form .field.bad .check span{color:var(--err,#B42318)}
.ellie-form .chips input{position:absolute;opacity:0;pointer-events:none}
.ellie-form .chips label{position:relative}
.ellie-form .field input[type=file]{min-height:auto;border:1.5px dashed var(--rule-2,#c9d6cc);border-radius:var(--r-md,16px);background:var(--paper-2,#F5FAF0);padding:16px;font:500 14px var(--f-text,inherit);color:var(--ink-2,#3D5248);cursor:pointer}
.ellie-form .field input[type=file]::file-selector-button{font:700 11px/1 var(--f-display,inherit);letter-spacing:.14em;text-transform:uppercase;background:var(--forest,#0A3323);color:#fff;border:0;border-radius:999px;padding:12px 18px;margin-right:14px;cursor:pointer}
.ellie-form .sf-sub{margin:-8px 0 0;color:var(--ink-3,#6B7C73);font-size:14px}
.ellie-form .sf-total{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--mint,#E4F5D6);border-radius:var(--r-md,16px);padding:16px 18px;font-weight:600}
.ellie-form .sf-total[hidden]{display:none}
.ellie-form .sf-total b{font:800 20px var(--f-display,inherit);color:var(--forest,#0A3323)}
.ellie-form .sf-msg{font-size:14px;margin-top:4px}
.ellie-form .sf-msg:empty{display:none}
.ellie-form .sf-msg.bad{color:var(--err,#B42318)}
.ellie-form .sf-msg.ok{color:var(--ok,#2E7D1E);font-weight:600;flex-basis:100%}
.ellie-form button[disabled]{opacity:.65;cursor:progress}
.ellie-form-done{outline:none}
.ellie-form-done .btn{margin-top:8px}
.nform.ellie-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.nform.ellie-form .field{flex:1 1 180px}
.ftr .nform.ellie-form .sf-msg.ok{color:var(--volt,#A8E62B)}
.ellie-form-missing{font:500 14px var(--f-text,inherit);color:var(--ink-3,#6B7C73);border:1.5px dashed var(--rule-2,#c9d6cc);border-radius:16px;padding:18px;margin:0}
@media (max-width:640px){.ellie-form .fgrid{grid-template-columns:1fr}}
.ellie-paynote{position:fixed;z-index:9999;left:50%;bottom:24px;transform:translateX(-50%);width:min(560px,calc(100% - 32px));display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:16px 48px 16px 20px;border-radius:16px;background:var(--forest,#0A3323);color:#fff;font:500 15px/1.5 var(--f-text,system-ui,sans-serif);box-shadow:0 18px 50px rgba(0,0,0,.25)}
.ellie-paynote.wait{background:#3D3A1E}
.ellie-paynote p{margin:0;flex:1 1 260px}
.ellie-paynote a{color:var(--volt,#A8E62B);font-weight:700}
.ellie-paynote button{position:absolute;top:8px;right:10px;background:none;border:0;color:inherit;font-size:24px;line-height:1;cursor:pointer;padding:6px}
.ellie-form .review{grid-template-columns:minmax(0,max-content) minmax(0,1fr)}
.ellie-form .review dt{max-width:220px;overflow-wrap:anywhere}
@media (max-width:640px){.ellie-form .review{grid-template-columns:1fr;gap:2px 0}.ellie-form .review dd{margin-bottom:10px}}
/* Phone country picker: shows "flag +code"; the full list opens from the (invisible) native select on top. */
.ellie-form .phone.has-cc{display:flex;align-items:stretch}
.ellie-form .phone-cc{position:relative;display:flex;align-items:center;gap:6px;flex:none;padding:0 12px;min-height:48px;border:1.5px solid var(--rule-2,rgba(0,0,0,.18));border-right:0;border-radius:var(--r-sm,10px) 0 0 var(--r-sm,10px);background:var(--paper-2,#F5FAF0);color:var(--ink,#16201b);font-weight:600;white-space:nowrap;cursor:pointer}
.ellie-form .phone-cc .cc-label{font:inherit;font-weight:600}
.ellie-form .phone-cc::after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.6}
.ellie-form .phone-cc select{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:0!important;margin:0;padding:0;opacity:0;cursor:pointer;font-size:16px;border:0}
.ellie-form .phone-cc:focus-within{outline:3px solid var(--volt,#A8E62B);outline-offset:2px}
.ellie-form .phone.has-cc input[type=tel]{border-radius:0 var(--r-sm,10px) var(--r-sm,10px) 0;flex:1;min-width:0}
