/* NextDigiX Canton Fair — front-end (scoped) v1.3.0 */
.ndcf-scope{
  --ndcf-brand:#041752;--ndcf-brand-2:#0a2270;--ndcf-brand-3:#1a3a9e;
  --ndcf-red:#E62B34;--ndcf-red-2:#c41f28;--ndcf-red-3:#ff4a53;
  --ndcf-bg:#ffffff;--ndcf-surface:#f5f7fb;--ndcf-surface-2:#eaeff7;
  --ndcf-border:#dbe2ec;--ndcf-text:#0b1230;--ndcf-muted:#5b6474;
  --ndcf-green:#12a05c;
  --ndcf-shadow:0 8px 24px -14px rgba(4,23,82,.28);
  --ndcf-shadow-lg:0 24px 60px -24px rgba(4,23,82,.42);
  --ndcf-shadow-btn:0 10px 24px -12px rgba(230,43,52,.55);
  --ndcf-shadow-btn-brand:0 10px 24px -12px rgba(4,23,82,.55);
  --ndcf-grad-brand:linear-gradient(135deg,#041752 0%,#1a3a9e 100%);
  --ndcf-grad-red:linear-gradient(135deg,#E62B34 0%,#ff4a53 100%);
  --ndcf-radius:12px;
  color:var(--ndcf-text);line-height:1.55;-webkit-font-smoothing:antialiased;box-sizing:border-box;
}
.ndcf-scope *,.ndcf-scope *::before,.ndcf-scope *::after{box-sizing:border-box}
.ndcf-scope h2,.ndcf-scope h3{letter-spacing:-.01em;margin:0}
.ndcf-scope input,.ndcf-scope select,.ndcf-scope textarea,.ndcf-scope button{font-family:inherit}

/* ============= Packages ============= */
.ndcf-pkg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
@media (max-width:480px){.ndcf-pkg-grid{grid-template-columns:1fr;gap:18px}}
.ndcf-pkg{position:relative;background:#fff;border:1px solid var(--ndcf-border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--ndcf-shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.ndcf-pkg:hover{transform:translateY(-6px);box-shadow:var(--ndcf-shadow-lg);border-color:var(--ndcf-brand)}
.ndcf-pkg-ribbon{position:absolute;top:18px;right:-40px;transform:rotate(35deg);background:var(--ndcf-grad-red);color:#fff;font-size:10px;font-weight:800;letter-spacing:.14em;padding:6px 46px;text-transform:uppercase;z-index:2;box-shadow:0 6px 14px rgba(230,43,52,.35)}
.ndcf-pkg-badge{padding:12px;text-align:center;font-weight:800;font-size:11px;letter-spacing:.18em;color:#fff;text-transform:uppercase}
.ndcf-pkg.is-featured{background:var(--ndcf-grad-brand);color:#fff;border-color:var(--ndcf-brand)}
.ndcf-pkg.is-featured .ndcf-pkg-title,.ndcf-pkg.is-featured .ndcf-pkg-price,.ndcf-pkg.is-featured .ndcf-pkg-icon{color:#fff}
.ndcf-pkg.is-featured .ndcf-pkg-icon{background:rgba(255,255,255,.15)}
.ndcf-pkg.is-featured .ndcf-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.ndcf-pkg.is-featured .ndcf-btn--ghost:hover{background:#fff;border-color:#fff;color:var(--ndcf-brand)}
.ndcf-pkg.is-featured .ndcf-btn--brand{background:var(--ndcf-red);border-color:var(--ndcf-red);color:#fff;box-shadow:var(--ndcf-shadow-btn)}
.ndcf-pkg.is-featured .ndcf-btn--brand:hover{background:var(--ndcf-red-2);border-color:var(--ndcf-red-2);color:#fff}
.ndcf-pkg.is-selected{border-color:var(--ndcf-red);box-shadow:0 0 0 3px rgba(230,43,52,.18),var(--ndcf-shadow-lg);transform:translateY(-6px)}
.ndcf-pkg--brand .ndcf-pkg-badge{background:var(--ndcf-grad-brand)}
.ndcf-pkg--red .ndcf-pkg-badge{background:var(--ndcf-grad-red)}
.ndcf-pkg-body{padding:28px 22px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;flex:1}
.ndcf-pkg-icon{width:68px;height:68px;border-radius:16px;display:grid;place-items:center;background:var(--ndcf-surface-2);color:var(--ndcf-brand);transition:transform .25s ease}
.ndcf-pkg:hover .ndcf-pkg-icon{transform:scale(1.08) rotate(-4deg)}
.ndcf-pkg-icon svg{width:32px;height:32px}
.ndcf-pkg-title{font-size:14px;font-weight:800;text-transform:uppercase;color:var(--ndcf-brand);line-height:1.4;min-height:38px;display:flex;align-items:center;letter-spacing:.03em}
.ndcf-pkg-price{font-size:32px;font-weight:800;display:flex;align-items:baseline;gap:4px;line-height:1;color:var(--ndcf-brand)}
.ndcf-pkg-sym{font-size:18px;font-weight:700;opacity:.75}
.ndcf-pkg--brand .ndcf-pkg-price{color:var(--ndcf-brand)}
.ndcf-pkg--red .ndcf-pkg-price{color:var(--ndcf-red)}

/* ============= Package buttons row ============= */
.ndcf-pkg-btns{width:100%;margin-top:auto;padding-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}
.ndcf-pkg-btns > .ndcf-btn{width:100%;min-width:0;margin:0;padding:12px 14px;font-size:12px;border-radius:10px;border-width:1.5px;border-style:solid;box-sizing:border-box}
@media (max-width:380px){.ndcf-pkg-btns{grid-template-columns:1fr}}
.ndcf-pkg.is-selected .ndcf-pkg-btn{background:var(--ndcf-green)!important;border-color:var(--ndcf-green)!important;color:#fff!important;cursor:default;box-shadow:0 10px 24px -12px rgba(18,160,92,.55)!important}
.ndcf-pkg.is-selected .ndcf-pkg-btn:hover{transform:none}

/* ============= Buttons ============= */
.ndcf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-radius:10px;border:1.5px solid transparent;color:#fff;cursor:pointer;text-decoration:none;transition:transform .18s ease,background .18s ease,box-shadow .18s ease,border-color .18s ease,color .18s ease;line-height:1;white-space:nowrap;min-height:44px}
.ndcf-btn svg{width:14px;height:14px;flex-shrink:0}
.ndcf-btn:hover{transform:translateY(-2px)}
.ndcf-btn:active{transform:translateY(0)}
.ndcf-btn:focus-visible{outline:3px solid rgba(4,23,82,.32);outline-offset:2px}
.ndcf-btn--brand{background:var(--ndcf-brand);border-color:var(--ndcf-brand);box-shadow:var(--ndcf-shadow-btn-brand);color:#fff}
.ndcf-btn--brand:hover{background:var(--ndcf-brand-2);border-color:var(--ndcf-brand-2);box-shadow:0 14px 28px -12px rgba(4,23,82,.65);color:#fff}
.ndcf-btn--red{background:var(--ndcf-red);border-color:var(--ndcf-red);box-shadow:var(--ndcf-shadow-btn);color:#fff}
.ndcf-btn--red:hover{background:var(--ndcf-red-2);border-color:var(--ndcf-red-2);box-shadow:0 14px 28px -12px rgba(230,43,52,.7);color:#fff}
.ndcf-btn--ghost{background:#fff;color:var(--ndcf-brand);border-color:var(--ndcf-brand)}
.ndcf-btn--ghost:hover{background:var(--ndcf-brand);color:#fff;border-color:var(--ndcf-brand);box-shadow:var(--ndcf-shadow-btn-brand)}

/* ============= Form ============= */
.ndcf-form-wrapper{max-width:960px;margin:0 auto}
.ndcf-form{background:#fff;border:1px solid var(--ndcf-border);border-radius:18px;padding:24px;box-shadow:var(--ndcf-shadow)}
@media (min-width:640px){.ndcf-form{padding:36px}}

/* Documents */
.ndcf-doc-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:24px}
@media (max-width:800px){.ndcf-doc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.ndcf-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.ndcf-doc{border:2px dashed var(--ndcf-border);border-radius:12px;padding:16px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;background:var(--ndcf-surface);transition:all .18s ease;position:relative}
.ndcf-doc:hover{border-color:var(--ndcf-red);background:#fff;transform:translateY(-2px);box-shadow:var(--ndcf-shadow)}
.ndcf-doc-icon{width:44px;height:44px;border-radius:12px;background:#fff;display:grid;place-items:center;color:var(--ndcf-brand);box-shadow:var(--ndcf-shadow)}
.ndcf-doc-icon svg{width:22px;height:22px}
.ndcf-doc-label{font-size:12px;font-weight:800;color:var(--ndcf-text)}
.ndcf-doc-hint{font-size:10px;color:var(--ndcf-muted)}
.ndcf-doc-cta{font-size:11px;font-weight:700;color:var(--ndcf-red);margin-top:2px;display:inline-flex;align-items:center;gap:4px}
.ndcf-doc-cta svg{width:12px;height:12px}
.ndcf-doc .ndcf-up-done{display:none;color:var(--ndcf-green)}
.ndcf-doc.is-done .ndcf-up-idle{display:none}
.ndcf-doc.is-done .ndcf-up-done{display:inline-flex;align-items:center;gap:4px}
.ndcf-doc.is-done{border-color:var(--ndcf-green);border-style:solid;background:#f0faf4}

/* Fields grid */
.ndcf-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:600px){.ndcf-fields{grid-template-columns:1fr}}
.ndcf-fields .ndcf-full{grid-column:1/-1}
.ndcf-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.ndcf-field label{font-size:12px;font-weight:700;color:var(--ndcf-brand);letter-spacing:.02em}
.ndcf-req{color:var(--ndcf-red);margin-left:2px}

.ndcf-field-group-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:800;color:var(--ndcf-brand);margin:20px 0 6px;padding-bottom:10px;border-bottom:2px solid var(--ndcf-surface-2)}
.ndcf-field-group-title:first-of-type{margin-top:0}
.ndcf-field-group-title svg{width:18px;height:18px}
.ndcf-step{width:28px;height:28px;border-radius:8px;background:var(--ndcf-grad-brand);color:#fff;display:inline-grid;place-items:center;font-size:13px;font-weight:800;flex-shrink:0}

.ndcf-fields input,.ndcf-fields select,.ndcf-fields textarea{width:100%;padding:12px 14px;font:inherit;font-size:14px;color:var(--ndcf-text);background:var(--ndcf-surface);border:1.5px solid var(--ndcf-border);border-radius:10px;outline:0;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}
.ndcf-fields input::placeholder,.ndcf-fields textarea::placeholder{color:var(--ndcf-muted);opacity:.85}
.ndcf-fields select{color:var(--ndcf-text);appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%235b6474'><path d='M5.5 8l4.5 4.5L14.5 8z'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:36px}
.ndcf-fields input:focus,.ndcf-fields select:focus,.ndcf-fields textarea:focus{border-color:var(--ndcf-brand);background:#fff;box-shadow:0 0 0 3px rgba(30,69,153,.12)}

/* Yes/No toggle */
.ndcf-toggle-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;background:var(--ndcf-surface);border:1.5px solid var(--ndcf-border);border-radius:12px;padding:14px 16px}
.ndcf-toggle-label{font-size:14px;font-weight:700;color:var(--ndcf-brand)}
.ndcf-toggle-group{display:inline-flex;background:#fff;border:1.5px solid var(--ndcf-border);border-radius:10px;padding:4px;gap:2px}
.ndcf-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:8px 22px;font-size:13px;font-weight:700;color:var(--ndcf-muted);cursor:pointer;border-radius:8px;transition:all .18s ease;min-width:70px;text-align:center}
.ndcf-toggle input{position:absolute;opacity:0;pointer-events:none}
.ndcf-toggle:hover{color:var(--ndcf-brand)}
.ndcf-toggle:has(input:checked){background:var(--ndcf-brand);color:#fff;box-shadow:0 4px 10px -4px rgba(10,36,86,.5)}
.ndcf-toggle:has(input[value="no"]:checked){background:var(--ndcf-muted);color:#fff}
.ndcf-conditional{animation:ndcfFade .25s ease}
@keyframes ndcfFade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.ndcf-inner-grid{background:var(--ndcf-surface);border:1px dashed var(--ndcf-border);border-radius:12px;padding:16px}

/* reCAPTCHA */
.ndcf-recaptcha-wrap{margin-top:20px;display:flex;justify-content:center}

/* Form foot */
.ndcf-form-foot{display:flex;flex-wrap:wrap-reverse;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;padding-top:22px;border-top:2px solid var(--ndcf-surface-2)}
.ndcf-secure{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ndcf-muted);font-weight:600}
.ndcf-secure svg{width:16px;height:16px;color:var(--ndcf-green)}
.ndcf-submit{padding:16px 34px;font-size:14px;letter-spacing:.08em;border-radius:12px;min-height:52px;background:var(--ndcf-grad-red);box-shadow:0 14px 30px -10px rgba(230,57,70,.6)}
.ndcf-submit:hover{background:linear-gradient(135deg,#cf2b39,#e63946);box-shadow:0 18px 34px -10px rgba(230,57,70,.75)}
.ndcf-submit svg{width:16px;height:16px}
@media (max-width:520px){.ndcf-form-foot{flex-direction:column-reverse;align-items:stretch}.ndcf-submit{width:100%;justify-content:center}.ndcf-secure{justify-content:center}}

.ndcf-msg{margin-top:16px;padding:14px 16px;border-radius:10px;font-size:13px;font-weight:600;display:none}
.ndcf-msg.is-ok{display:block;background:#eafaf1;color:#0e7a45;border:1px solid #b7ebcd}
.ndcf-msg.is-err{display:block;background:#fdecee;color:#a11525;border:1px solid #f6c1c6}
.ndcf-form.is-loading .ndcf-submit{opacity:.75;pointer-events:none}
.ndcf-form.is-loading .ndcf-submit::after{content:"";width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;margin-left:8px;animation:ndcfSpin .7s linear infinite;display:inline-block}
@keyframes ndcfSpin{to{transform:rotate(360deg)}}

/* ============= Modal ============= */
.ndcf-modal-overlay,.ndcf-details-modal-overlay{position:fixed;inset:0;background:rgba(10,36,86,.65);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.ndcf-modal-overlay.is-visible,.ndcf-details-modal-overlay.is-visible{opacity:1;visibility:visible}
.ndcf-modal{background:#fff;border-radius:18px;padding:36px 30px;text-align:center;max-width:440px;width:100%;box-shadow:var(--ndcf-shadow-lg);transform:scale(.92) translateY(10px);transition:transform .25s cubic-bezier(.34,1.56,.64,1);position:relative}
.ndcf-modal-overlay.is-visible .ndcf-modal,.ndcf-details-modal-overlay.is-visible .ndcf-modal{transform:scale(1) translateY(0)}
.ndcf-modal-icon{width:76px;height:76px;border-radius:999px;background:#eafaf1;color:var(--ndcf-green);display:grid;place-items:center;margin:0 auto 18px}
.ndcf-modal-icon svg{width:38px;height:38px}
.ndcf-modal-title{font-size:24px;font-weight:800;color:var(--ndcf-brand);margin-bottom:8px}
.ndcf-modal-message{color:var(--ndcf-muted);margin-bottom:24px;line-height:1.6}
.ndcf-modal-close{min-width:130px}
.ndcf-modal-close-x{position:absolute;top:12px;right:14px;width:32px;height:32px;border-radius:50%;font-size:22px;background:var(--ndcf-surface-2);border:0;cursor:pointer;color:var(--ndcf-muted);line-height:1;transition:all .15s ease}
.ndcf-modal-close-x:hover{background:var(--ndcf-red);color:#fff}
.ndcf-modal-price{font-size:22px;font-weight:800;color:var(--ndcf-red);margin-bottom:20px}
.ndcf-details-list{list-style:none;padding:0;margin:0 0 24px;text-align:left;max-width:320px;margin-left:auto;margin-right:auto}
.ndcf-details-list li{display:flex;align-items:center;gap:10px;padding:8px 0;color:var(--ndcf-text);border-bottom:1px dashed var(--ndcf-surface-2)}
.ndcf-details-list li:last-child{border-bottom:0}
.ndcf-details-list li.excluded{color:var(--ndcf-muted);text-decoration:line-through}
.ndcf-details-list svg{width:20px;height:20px;flex-shrink:0}
.ndcf-details-list .icon-check{color:var(--ndcf-green)}
.ndcf-details-list .icon-cross{color:var(--ndcf-red)}

/* ============= Fair Schedule shortcode ============= */
.ndcf-schedule{max-width:520px;margin:0 auto}
.ndcf-sched-card{background:#fff;border:1px solid var(--ndcf-border);border-radius:20px;padding:28px 26px;box-shadow:var(--ndcf-shadow-lg);position:relative;overflow:hidden}
.ndcf-sched-card::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--ndcf-grad-brand)}
.ndcf-sched-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:22px}
.ndcf-sched-title{font-size:22px;font-weight:900;color:var(--ndcf-brand);letter-spacing:.02em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;margin:0}
.ndcf-sched-dash{color:var(--ndcf-red);font-weight:900}
.ndcf-sched-sub{font-size:13px;font-weight:700;color:var(--ndcf-red);text-transform:uppercase;letter-spacing:.15em}
.ndcf-sched-phases{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:16px}
.ndcf-sched-phase{display:flex;align-items:flex-start;gap:14px}
.ndcf-sched-badge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:80px;padding:8px 14px;background:var(--ndcf-grad-brand);color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;border-radius:8px;text-transform:uppercase;box-shadow:0 4px 10px -4px rgba(4,23,82,.45)}
.ndcf-sched-info{flex:1;min-width:0}
.ndcf-sched-dates{font-size:15px;font-weight:800;color:var(--ndcf-text);line-height:1.35}
.ndcf-sched-cats{font-size:13px;color:var(--ndcf-muted);margin-top:3px;line-height:1.45}
.ndcf-sched-meta{border-top:1px dashed var(--ndcf-border);padding-top:18px;margin-bottom:22px;display:flex;flex-direction:column;gap:12px}
.ndcf-sched-meta-row{display:flex;align-items:flex-start;gap:12px}
.ndcf-sched-meta-icon{width:36px;height:36px;border-radius:10px;background:var(--ndcf-surface-2);color:var(--ndcf-brand);display:grid;place-items:center;flex-shrink:0}
.ndcf-sched-meta-icon svg{width:18px;height:18px}
.ndcf-sched-meta-label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--ndcf-red)}
.ndcf-sched-meta-val{display:block;font-size:14px;font-weight:600;color:var(--ndcf-text);line-height:1.4;margin-top:2px}
.ndcf-sched-cta{width:100%;padding:14px 20px;font-size:13px;letter-spacing:.15em}
@media (max-width:480px){
  .ndcf-sched-card{padding:22px 18px;border-radius:16px}
  .ndcf-sched-title{font-size:18px}
  .ndcf-sched-badge{min-width:70px;font-size:11px;padding:7px 10px}
  .ndcf-sched-dates{font-size:14px}
}

/* ============= Multi-child blocks ============= */
.ndcf-children-list{display:flex;flex-direction:column;gap:14px}
.ndcf-child-block{background:var(--ndcf-surface);border:1px dashed var(--ndcf-border);border-radius:12px;padding:14px 14px 4px;position:relative;animation:ndcfFade .25s ease}
.ndcf-child-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.ndcf-child-title{font-size:13px;font-weight:800;color:var(--ndcf-brand);text-transform:uppercase;letter-spacing:.08em;display:inline-flex;align-items:center;gap:6px}
.ndcf-child-num{background:var(--ndcf-brand);color:#fff;padding:2px 8px;border-radius:6px;font-size:12px}
.ndcf-child-remove{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--ndcf-red);border:1px solid var(--ndcf-red);padding:5px 10px;border-radius:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all .18s ease}
.ndcf-child-remove:hover{background:var(--ndcf-red);color:#fff}
.ndcf-child-remove svg{width:12px;height:12px}
.ndcf-child-block .ndcf-inner-grid{background:#fff;margin:0}
.ndcf-child-actions{margin-top:14px;display:flex;justify-content:center}
.ndcf-add-child{padding:10px 18px;font-size:12px}
.ndcf-add-child svg{width:14px;height:14px}
