/* Stafflancer Lead Forms — Frontend (fully isolated)
   IMPORTANT: every selector is scoped to #slf-root so it cannot affect site layout.
*/

#slf-root{
  position:relative;
  --slf-x: 24px;
  --slf-y: 24px;
  --slf-pt-scale: 1;
  --slf-icon-scale: 1.2;
}

#slf-root .slf-float{
  position:fixed;
  z-index:999999;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  color:#111;
  box-shadow:0 12px 30px rgba(0,0,0,.12);
  cursor:pointer;
}

/* Ensure floating button stays crisp black on white in dark mode */
#slf-root .slf-float.slc-keep-black{ color:#000 !important; }

/* Icon swap: show light icon by default, dark icon only when JS marks theme as dark */
#slf-root .slf-icon--dark{ display:none; }
#slf-root[data-slf-theme="dark"] .slf-icon--dark{ display:inline-flex; }
#slf-root[data-slf-theme="dark"] .slf-icon--light{ display:none; }

/* Never let global dark-mode filters affect the floating icon */
#slf-root .slf-float__icon img,
#slf-root .slf-float__icon svg{ filter:none !important; opacity:1 !important; mix-blend-mode:normal !important; }


/* Cookie banner layering (additive)
   Goal: keep the cookie banner ABOVE the floating button, without affecting the modal.
   We avoid setting z-index on #slf-root so the modal can still sit above everything.
*/
body.slf-cookie-active #slf-root .slf-float{ z-index: 999998 !important; }
body.slf-cookie-active #slc-cookie{ z-index: 999999 !important; }

/* Position presets (controlled via #slf-root[data-slf-pos]) */
#slf-root[data-slf-pos="br"] .slf-float{
  right: calc(var(--slf-x) + env(safe-area-inset-right, 0px));
  bottom: calc(var(--slf-y) + env(safe-area-inset-bottom, 0px));
  left:auto; top:auto; transform:none;
}
#slf-root[data-slf-pos="bl"] .slf-float{
  left: calc(var(--slf-x) + env(safe-area-inset-left, 0px));
  bottom: calc(var(--slf-y) + env(safe-area-inset-bottom, 0px));
  right:auto; top:auto; transform:none;
}
#slf-root[data-slf-pos="mr"] .slf-float{
  right: calc(var(--slf-x) + env(safe-area-inset-right, 0px));
  top: 50%;
  left:auto; bottom:auto;
  transform: translateY(calc(-50% + var(--slf-y)));
}
#slf-root[data-slf-pos="ml"] .slf-float{
  left: calc(var(--slf-x) + env(safe-area-inset-left, 0px));
  top: 50%;
  right:auto; bottom:auto;
  transform: translateY(calc(-50% + var(--slf-y)));
}
#slf-root[data-slf-pos="bc"] .slf-float{
  left: 50%;
  bottom: calc(var(--slf-y) + env(safe-area-inset-bottom, 0px));
  right:auto; top:auto;
  transform: translateX(-50%);
}
#slf-root[data-slf-pos="tc"] .slf-float{
  left: 50%;
  top: calc(var(--slf-y) + env(safe-area-inset-top, 0px));
  right:auto; bottom:auto;
  transform: translateX(-50%);
}

#slf-root .slf-float__icon{ display:inline-flex; }
#slf-root .slf-float__icon img{ width:20px; height:20px; display:block; transform: scale(var(--slf-icon-scale)); transform-origin:center; }
#slf-root .slf-float__icon svg{ width:20px; height:20px; display:block; transform: scale(var(--slf-icon-scale)); transform-origin:center; }
#slf-root .slf-float__text{ font-weight:600; font-size:14px; }

/* Mobile: compact icon-only floating button (prevents overlap with other bottom widgets, e.g., accessibility toggle) */
@media (max-width: 767px){
  #slf-root .slf-float{
    width:56px;
    height:56px;
    min-width:56px;
    padding:0;
    gap:0;
    justify-content:center;
  }
  #slf-root .slf-float__text{ display:none; }
  #slf-root .slf-float__icon img,
  #slf-root .slf-float__icon svg{
    width:22px;
    height:22px;
    transform: scale(var(--slf-icon-scale));
    transform-origin:center;
  }
}

/* Portrait tablet scaling (only affects the floating button) */
#slf-root[data-slf-portrait-tablet="1"] .slf-float{
  transform: translateX(-50%) scale(var(--slf-pt-scale));
  transform-origin: center;
}
#slf-root[data-slf-portrait-tablet="1"][data-slf-pos="br"] .slf-float,
#slf-root[data-slf-portrait-tablet="1"][data-slf-pos="bl"] .slf-float{
  transform: scale(var(--slf-pt-scale));
}
#slf-root[data-slf-portrait-tablet="1"][data-slf-pos="mr"] .slf-float,
#slf-root[data-slf-portrait-tablet="1"][data-slf-pos="ml"] .slf-float{
  transform: translateY(calc(-50% + var(--slf-y))) scale(var(--slf-pt-scale));
}

#slf-root .slf-modal{ position:fixed; inset:0; z-index:1000000; display:none; }
#slf-root .slf-modal.is-open{ display:block; }
#slf-root .slf-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
#slf-root .slf-modal__panel{
  position:relative;
  width:min(70vw, calc(100% - 32px));
  margin:70px auto 0;
  background:#fff;
  border-radius:20px;
  padding:18px 18px 16px;
  box-shadow:0 18px 50px rgba(0,0,0,.25);
  max-height: calc(100vh - 110px);
  overflow:auto;
  overflow-x:hidden;
}
#slf-root .slf-modal__close{
  /* Sticky so it stays visible while the panel scrolls */
  position: sticky;
  top:10px;
  margin-left:auto;
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  color:#111;
  cursor:pointer;
  font-size:22px;
  line-height:1;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:5;
}
#slf-root .slf-modal__title{ margin:0 0 12px; font-size:18px; letter-spacing:-0.01em; }

#slf-root .slf-progress{ margin: 0 0 14px; }
#slf-root .slf-progress__text{ font-size:12px; opacity:.75; margin:0 0 6px; }
#slf-root .slf-progress__bar{ height:8px; border-radius:999px; background:rgba(0,0,0,.10); overflow:hidden; }
#slf-root .slf-progress__fill{ height:100%; width:0%; background:rgba(0,0,0,.55); border-radius:999px; }

#slf-root .slf-step{ margin: 0 0 14px; }
#slf-root .slf-step__title{ margin:0 0 10px; font-size:14px; letter-spacing:-0.01em; }

/* Premium layout: grid fields to reduce form height on desktop/tablet */
#slf-root .slf-fields{
  display:grid;
  grid-template-columns: 1fr;
  gap:12px;
}
#slf-root .slf-modal__panel,
#slf-root .slf-formwrap,
#slf-root .slf-form,
#slf-root .slf-fields,
#slf-root .slf-row{
  min-width:0;
}
#slf-root .slf-form *,
#slf-root .slf-form *::before,
#slf-root .slf-form *::after{
  box-sizing:border-box;
}
#slf-root .slf-fields > *{
  min-width:0;
}
@media (min-width: 900px){
  #slf-root .slf-fields{ grid-template-columns: 1fr 1fr; gap:14px 14px; }
  #slf-root .slf-row--full{ grid-column: 1 / -1; }
}

#slf-root .slf-form .slf-row{ margin:0; }
#slf-root .slf-form label{ display:block; font-weight:600; font-size:13px; margin:0 0 6px; }

/* Consent row: checkbox inline + larger tap target */
#slf-root .slf-row--consent label{ margin:0; font-weight:600; }
#slf-root .slf-consent{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
#slf-root .slf-consent input[type="checkbox"]{
  width:20px;
  height:20px;
  margin:2px 0 0;
  flex:0 0 auto;
}
#slf-root .slf-row--consent .slf-req{ margin-left:4px; }
#slf-root .slf-form input[type="text"],
#slf-root .slf-form input[type="email"],
#slf-root .slf-form input[type="tel"],
#slf-root .slf-form input[type="url"],
#slf-root .slf-form input[type="password"],
#slf-root .slf-form input[type="file"],
#slf-root .slf-form select,
#slf-root .slf-form textarea{
  width:100%;
  max-width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  color:#111;
  transition: box-shadow .15s ease, border-color .15s ease;
}

/* Premium file picker */
#slf-root .slf-file{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
}
#slf-root .slf-file__input{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
#slf-root .slf-file__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  color:#111;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
#slf-root .slf-file__name{
  font-size:13px;
  font-weight:600;
  opacity:.85;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#slf-root .slf-file.has-file .slf-file__name{ opacity:1; }


#slf-root .slf-form input[type="text"]:focus,
#slf-root .slf-form input[type="email"]:focus,
#slf-root .slf-form input[type="tel"]:focus,
#slf-root .slf-form input[type="url"]:focus,
#slf-root .slf-form input[type="password"]:focus,
#slf-root .slf-form select:focus,
#slf-root .slf-form textarea:focus{
  outline:none;
  border-color: rgba(0,0,0,.35);
  box-shadow: 0 0 0 4px rgba(0,0,0,.08);
}

/* Radio / Checkbox groups */
#slf-root .slf-choicegroup{ display:grid; grid-template-columns: 1fr; gap:8px; padding:2px 0; }
@media (min-width: 900px){
  #slf-root .slf-choicegroup{ grid-template-columns: 1fr 1fr; }
}
#slf-root .slf-choice{ display:flex; align-items:flex-start; gap:10px; font-weight:500; font-size:13px; cursor:pointer; }
#slf-root .slf-choice input{ margin-top:2px; }

/* Welcome + Success screens */
#slf-root .slf-step--welcome .slf-welcome__msg,
#slf-root .slf-success__msg{ font-size:13px; line-height:1.5; opacity:.9; }
#slf-root .slf-success{ padding-top:14px; }
#slf-root .slf-success__title{ margin:0 0 10px; font-size:16px; }

/* Privacy link */
#slf-root .slf-privacy{ text-decoration:underline; }
#slf-root .slf-form textarea{ resize:vertical; }
#slf-root .slf-req{ color:#b00020; }
#slf-root .slf-hint{ font-size:12px; opacity:.75; margin-top:6px; }

#slf-root .slf-nav{ display:flex; gap:10px; margin-top:10px; }
#slf-root .slf-nav__back,
#slf-root .slf-nav__next{
  flex:1;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  color:#111;
  font-weight:700;
  cursor:pointer;
}

/* Ensure floating button stays crisp black on white in dark mode */
#slf-root .slf-float.slc-keep-black{ color:#000 !important; }
#slf-root .slf-float.slc-keep-black svg{ color:#000 !important; }

/* Keep default/uploaded floating icon unchanged in dark mode (no filters/inverts) */
#slf-root .slf-keep-icon{ filter:none !important; opacity:1 !important; mix-blend-mode:normal !important; }
html.sl-theme-dark body.slc-dark #slf-root .slf-keep-icon,
body.slc-dark #slf-root .slf-keep-icon{ filter:none !important; opacity:1 !important; mix-blend-mode:normal !important; }

#slf-root .slf-submit{
  flex:1;
  padding:12px 14px;
  border-radius:14px;
  border:0;
  background:#111;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}

/* Ensure floating button stays crisp black on white in dark mode */
#slf-root .slf-float.slc-keep-black{ color:#000 !important; }
#slf-root .slf-float.slc-keep-black svg{ color:#000 !important; }

/* Keep default/uploaded floating icon unchanged in dark mode (no filters/inverts) */
#slf-root .slf-keep-icon{ filter:none !important; opacity:1 !important; mix-blend-mode:normal !important; }
html.sl-theme-dark body.slc-dark #slf-root .slf-keep-icon,
body.slc-dark #slf-root .slf-keep-icon{ filter:none !important; opacity:1 !important; mix-blend-mode:normal !important; }



/* Premium button interactions */
#slf-root .slf-nav__back:hover,
#slf-root .slf-nav__next:hover,
#slf-root .slf-file__btn:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.10);
  transform: translateY(-1px);
}
#slf-root .slf-nav__back:active,
#slf-root .slf-nav__next:active,
#slf-root .slf-file__btn:active{
  transform: translateY(0);
  box-shadow:0 6px 16px rgba(0,0,0,.10);
}
#slf-root .slf-submit:hover{
  box-shadow:0 14px 28px rgba(0,0,0,.18);
  transform: translateY(-1px);
}
#slf-root .slf-submit:active{
  transform: translateY(0);
  box-shadow:0 10px 22px rgba(0,0,0,.16);
}
#slf-root .slf-nav__back,
#slf-root .slf-nav__next,
#slf-root .slf-submit,
#slf-root .slf-file__btn{
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
}

#slf-root .slf-submit[disabled],
#slf-root .slf-nav__back[disabled],
#slf-root .slf-nav__next[disabled]{
  opacity:.6;
  cursor:not-allowed;
}

#slf-root .slf-note{ margin-top:10px; font-size:13px; }
#slf-root .slf-note.is-ok{ color:#0b6b2e; }
#slf-root .slf-note.is-bad{
  color:#b00020;
  font-weight:700;
  font-size:16px;
  line-height:1.35;
  text-align:center;
  background:#ffffff;
  border:1px solid rgba(0,0,0,.12);
  padding:14px 14px;
  border-radius:14px;
  margin-top:14px;
}

/* Mobile + portrait tablet: full-width / full-height modal */
@media (max-width: 820px){
  #slf-root .slf-modal__panel{
    width: 100vw;
    margin: 0;
    border-radius: 0;
    max-height: 100vh;
    height: 100vh;
    padding: 18px 16px 16px;
  }
  #slf-root .slf-modal__close{
  /* Sticky so it stays visible while the panel scrolls */
  position: sticky;
  top:10px;
  margin-left:auto;
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  color:#111;
  cursor:pointer;
  font-size:22px;
  line-height:1;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:5;
}
}

/* Small phones: keep button full-width centered (safe) */
@media (max-width: 520px){
  #slf-root .slf-float{ left:16px; right:16px; justify-content:center; }
  #slf-root[data-slf-pos] .slf-float{ left:16px; right:16px; top:auto; transform:none; }
}

/* Device visibility */
@media (max-width: 767px){
  #slf-root[data-slf-show-mobile="0"] .slf-float,
  #slf-root[data-slf-show-mobile="0"] .slf-modal{ display:none !important; }
}
@media (min-width: 768px) and (max-width: 1024px){
  #slf-root[data-slf-show-tablet="0"] .slf-float,
  #slf-root[data-slf-show-tablet="0"] .slf-modal{ display:none !important; }
}
@media (min-width: 1025px){
  #slf-root[data-slf-show-desktop="0"] .slf-float,
  #slf-root[data-slf-show-desktop="0"] .slf-modal{ display:none !important; }
}



/* v0.2.9.5 — requested UI fixes (additive, scoped) */

/* 1px border on all buttons */
#slf-root button,
#slf-root .slf-btn,
#slf-root .slf-nav__back,
#slf-root .slf-nav__next,
#slf-root .slf-submit,
#slf-root .slf-file__btn{
  border:1px solid rgba(0,0,0,.18) !important;
}

/* Keep success screen text black in dark mode */
body.slc-dark #slf-root .slf-success,
body.slc-dark #slf-root .slf-success *{
  color:#000 !important;
}



/* v0.2.9.6 — enforce keep-black inside Lead Forms in dark mode */
html.sl-theme-dark body.slc-dark #slf-root .slc-keep-black,
html.sl-theme-dark body.slc-dark #slf-root .slc-keep-black *,
body.slc-dark #slf-root .slc-keep-black,
body.slc-dark #slf-root .slc-keep-black *{
  color:#000 !important;
}

/* v0.2.9.6 — success screen text must remain black */
html.sl-theme-dark body.slc-dark #slf-root .slf-success,
html.sl-theme-dark body.slc-dark #slf-root .slf-success *,
body.slc-dark #slf-root .slf-success,
body.slc-dark #slf-root .slf-success *{
  color:#000 !important;
}

/* v0.2.9.6 — ensure submit button background stays white when keep-black is applied */
body.slc-dark #slf-root .slf-submit.slc-keep-black{
  background:#fff !important;
}



/* v0.2.9.7 — Stafflancer premium white-button theme (scoped, additive)
   - All buttons: white bg + black text + 1px border
   - All text stays black in dark mode inside Lead Forms modal
   - Inputs stay white/black
*/

/* Modal stays light even when site is dark */
#slf-root .slf-modal__panel{
  background:#fff !important;
  color:#000 !important;
}

/* Force all text inside the modal to stay black (beats global dark-mode heading rules) */
#slf-root .slf-modal__panel,
#slf-root .slf-modal__panel *{
  color:#000 !important;
}

/* Inputs: white bg + black text */
#slf-root input[type="text"],
#slf-root input[type="email"],
#slf-root input[type="tel"],
#slf-root input[type="url"],
#slf-root input[type="password"],
#slf-root select,
#slf-root textarea{
  background:#fff !important;
  color:#000 !important;
  border:1px solid rgba(0,0,0,.14) !important;
}

/* Buttons: white bg + black text + 1px border */
#slf-root button,
#slf-root .slf-btn,
#slf-root .slf-nav__back,
#slf-root .slf-nav__next,
#slf-root .slf-submit,
#slf-root .slf-file__btn,
#slf-root .slf-modal__close,
#slf-root .slf-float{
  background:#fff !important;
  color:#000 !important;
  border:1px solid rgba(0,0,0,.18) !important;
}

/* Close icon stays black */
#slf-root .slf-modal__close svg,
#slf-root .slf-modal__close path,
#slf-root .slf-modal__close line{
  stroke:#000 !important;
}

/* Hover: subtle darken, keep text black */
#slf-root button:hover,
#slf-root .slf-float:hover{
  filter:brightness(.97);
}

/* Success screen stays black */
#slf-root .slf-success,
#slf-root .slf-success *{
  color:#000 !important;
}


/* Design controls (from Builder) */
.slf-space--compact .slf-fields{gap:10px}
.slf-space--compact .slf-field{margin:0 0 10px}
.slf-space--compact .slf-nav{margin-top:10px}

.slf-space--normal .slf-fields{gap:16px}
.slf-space--normal .slf-field{margin:0 0 14px}
.slf-space--normal .slf-nav{margin-top:16px}

.slf-step--welcome{padding:16px;border:1px solid rgba(0,0,0,.06);border-radius:14px}
.slf-success{padding:18px;border:1px solid rgba(0,0,0,.06);border-radius:14px}

/* Success redirect countdown */
#slf-root .slf-success__redirect,
.slf-inline-embed .slf-success__redirect{
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(0,0,0,.04);
  font-size:13px;
  line-height:1.45;
  font-weight:600;
}


/* Prevent background scroll bounce when Lead Forms modal is open */
body.slf-modal-open{
  overscroll-behavior: contain;
}


/* Inline shortcode form */
.slf-inline-embed{
  max-width: 820px;
  margin: 24px auto;
}
.slf-inline-embed .slf-inline-shell{
  background:#fff;
  border:1px solid rgba(0,0,0,.10);
  border-radius:20px;
  padding:22px 20px;
  box-shadow:0 18px 40px rgba(0,0,0,.08);
}
.slf-inline-embed .slf-inline-title{
  margin:0 0 14px;
  font-size:22px;
  line-height:1.25;
  font-weight:700;
  color:#000;
}
.slf-inline-embed .slf-progress{ margin:0 0 14px; }
.slf-inline-embed .slf-progress__text{ font-size:12px; opacity:.75; margin:0 0 6px; color:#000; }
.slf-inline-embed .slf-progress__bar{ height:8px; border-radius:999px; background:rgba(0,0,0,.10); overflow:hidden; }
.slf-inline-embed .slf-progress__fill{ height:100%; width:0%; background:rgba(0,0,0,.55); border-radius:999px; }
.slf-inline-embed .slf-step{ margin:0 0 14px; }
.slf-inline-embed .slf-step__title{ margin:0 0 10px; font-size:14px; letter-spacing:-0.01em; color:#000; }
.slf-inline-embed .slf-fields{ display:grid; grid-template-columns:1fr; gap:12px; }
@media (min-width: 900px){
  .slf-inline-embed .slf-fields{ grid-template-columns:1fr 1fr; gap:14px; }
  .slf-inline-embed .slf-row--full{ grid-column:1 / -1; }
}
.slf-inline-embed .slf-form *,
.slf-inline-embed .slf-form *::before,
.slf-inline-embed .slf-form *::after{ box-sizing:border-box; }
.slf-inline-embed .slf-form label{ display:block; font-weight:600; font-size:13px; margin:0 0 6px; color:#000; }
.slf-inline-embed .slf-form input[type="text"],
.slf-inline-embed .slf-form input[type="email"],
.slf-inline-embed .slf-form input[type="tel"],
.slf-inline-embed .slf-form input[type="url"],
.slf-inline-embed .slf-form input[type="password"],
.slf-inline-embed .slf-form select,
.slf-inline-embed .slf-form textarea{
  width:100%;
  max-width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  color:#111;
}
.slf-inline-embed .slf-form input[type="text"]:focus,
.slf-inline-embed .slf-form input[type="email"]:focus,
.slf-inline-embed .slf-form input[type="tel"]:focus,
.slf-inline-embed .slf-form input[type="url"]:focus,
.slf-inline-embed .slf-form input[type="password"]:focus,
.slf-inline-embed .slf-form select:focus,
.slf-inline-embed .slf-form textarea:focus{
  outline:none;
  border-color:rgba(0,0,0,.35);
  box-shadow:0 0 0 4px rgba(0,0,0,.08);
}
.slf-inline-embed .slf-file{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
}
.slf-inline-embed .slf-file__input{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.slf-inline-embed .slf-file__btn,
.slf-inline-embed .slf-nav__back,
.slf-inline-embed .slf-nav__next,
.slf-inline-embed .slf-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
  color:#111;
  font-weight:700;
  cursor:pointer;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
}
.slf-inline-embed .slf-file__btn:hover,
.slf-inline-embed .slf-nav__back:hover,
.slf-inline-embed .slf-nav__next:hover,
.slf-inline-embed .slf-submit:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.10);
  transform:translateY(-1px);
}
.slf-inline-embed .slf-file__name{ font-size:13px; font-weight:600; opacity:.85; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#000; }
.slf-inline-embed .slf-choicegroup{ display:grid; grid-template-columns:1fr; gap:8px; padding:2px 0; }
@media (min-width: 900px){
  .slf-inline-embed .slf-choicegroup{ grid-template-columns:1fr 1fr; }
}
.slf-inline-embed .slf-choice{ display:flex; align-items:flex-start; gap:10px; font-weight:500; font-size:13px; cursor:pointer; color:#000; }
.slf-inline-embed .slf-choice input{ margin-top:2px; }
.slf-inline-embed .slf-consent{ display:flex; align-items:flex-start; gap:12px; }
.slf-inline-embed .slf-consent input[type="checkbox"]{ width:20px; height:20px; margin:2px 0 0; flex:0 0 auto; }
.slf-inline-embed .slf-privacy{ text-decoration:underline; }
.slf-inline-embed .slf-form textarea{ resize:vertical; }
.slf-inline-embed .slf-req{ color:#b00020; }
.slf-inline-embed .slf-nav{ display:flex; gap:10px; margin-top:10px; }
.slf-inline-embed .slf-nav__back,
.slf-inline-embed .slf-nav__next,
.slf-inline-embed .slf-submit{ flex:1; }
.slf-inline-embed .slf-note{ margin-top:10px; font-size:13px; color:#000; }
.slf-inline-embed .slf-note.is-bad{
  color:#b00020;
  font-weight:700;
  font-size:16px;
  line-height:1.35;
  text-align:center;
  background:#fff;
  border:1px solid rgba(0,0,0,.12);
  padding:14px;
  border-radius:14px;
  margin-top:14px;
}
.slf-inline-embed .slf-success{ padding-top:14px; color:#000; }
.slf-inline-embed .slf-success__title{ margin:0 0 10px; font-size:16px; color:#000; }
.slf-inline-embed .slf-success__msg{ font-size:13px; line-height:1.5; opacity:.9; color:#000; }

/* ── Subscribe inline layout: joined email input + subscribe button ── */
/* The layout changes only structure. field color comes from Design settings, and button color comes from Design settings. */
.slf-inline-embed.slf-inline--subscribe{
  --slf-subscribe-gap: 0px;
  --slf-subscribe-gap-half: 0px;
  --slf-subscribe-email-width: 70%;
  --slf-subscribe-button-width: 30%;
}
.slf-inline-embed.slf-inline--subscribe .slf-formwrap .slf-form{
  display:flex; flex-direction:row;
  align-items:stretch;
  gap:var(--slf-subscribe-gap, 0px);
}
/* Step wraps the email field: configurable width */
.slf-inline-embed.slf-inline--subscribe .slf-step{
  flex:0 0 calc(var(--slf-subscribe-email-width, 70%) - var(--slf-subscribe-gap-half, 0px)); max-width:calc(var(--slf-subscribe-email-width, 70%) - var(--slf-subscribe-gap-half, 0px)); min-width:0;
  margin:0 !important; padding:0;
  display:flex; flex-direction:column;
}
/* Strip grid layout from fields inside subscribe */
.slf-inline-embed.slf-inline--subscribe .slf-fields{
  display:flex !important; flex-direction:column !important;
  flex:1; margin:0; gap:8px;
}
.slf-inline-embed.slf-inline--subscribe .slf-field{
  display:flex; flex-direction:column; margin:0 !important;
}
/* label is omitted for compact text inputs in JS; keep optional consent labels visible if an admin adds one manually. */
.slf-inline-embed.slf-inline--subscribe .slf-row:not(.slf-row--consent) > label{ display:none !important; }
.slf-inline-embed.slf-inline--subscribe .slf-consent label{ display:inline !important; margin:0; font-weight:500; line-height:1.35; }
/* The newsletter template intentionally hides compact required markers to keep the joined signup control clean. */
.slf-inline-embed.slf-inline--subscribe .slf-row[data-required]{ position:relative; }
.slf-inline-embed.slf-inline--subscribe .slf-row[data-required]::after{ content:none; display:none; }
/* Email input and submit button share one explicit control height. */
.slf-inline-embed.slf-inline--subscribe .slf-step input[type="email"]{
  flex:0 0 auto; width:100%; height:var(--slf-subscribe-control-height, 56px); min-height:var(--slf-subscribe-control-height, 56px); margin:0; box-sizing:border-box;
}
/* Joined state only adjusts shape; colors remain controlled by the form style settings. */
.slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-joined .slf-step input[type="email"]{
  border-top-right-radius:0 !important;
  border-bottom-right-radius:0 !important;
}
/* Nav wraps the button: configurable width */
.slf-inline-embed.slf-inline--subscribe .slf-nav{
  flex:0 0 calc(var(--slf-subscribe-button-width, 30%) - var(--slf-subscribe-gap-half, 0px)); max-width:calc(var(--slf-subscribe-button-width, 30%) - var(--slf-subscribe-gap-half, 0px)); min-width:0;
  margin:0 !important; gap:0;
  display:flex; flex-direction:column; align-self:stretch;
}
.slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-joined .slf-nav{ margin-left:-1px !important; }
.slf-inline-embed.slf-inline--subscribe .slf-nav__back,
.slf-inline-embed.slf-inline--subscribe .slf-nav__next{ display:none !important; }
/* Button height matches the email input. Background, text color, border color, and hover colors come from Design settings. */
.slf-inline-embed.slf-inline--subscribe .slf-submit{
  display:flex !important;
  flex:0 0 auto; width:100%; height:var(--slf-subscribe-control-height, 56px);
  min-height:var(--slf-subscribe-control-height, 56px) !important;
  white-space:nowrap; box-sizing:border-box;
  padding:0 14px !important;
}
.slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-joined .slf-submit{
  border-top-left-radius:0 !important;
  border-bottom-left-radius:0 !important;
}
.slf-inline-embed.slf-inline--subscribe .slf-progress{ display:none !important; }
.slf-inline-embed.slf-inline--subscribe .slf-step__title{ display:none !important; }
.slf-inline-embed.slf-inline--subscribe .slf-row{ margin:0 !important; display:flex; flex-direction:column; }
.slf-inline-embed.slf-inline--subscribe .slf-row--consent{ margin-top:8px !important; }

@media (max-width: 767px){
  .slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-stack-mobile .slf-formwrap .slf-form{
    flex-direction:column;
    align-items:stretch;
  }
  .slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-stack-mobile .slf-step,
  .slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-stack-mobile .slf-nav{
    flex:0 0 auto;
    max-width:none;
    width:100%;
  }
  .slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-stack-mobile .slf-nav{ margin-left:0 !important; }
  .slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-stack-mobile .slf-step input[type="email"]{
    border-top-right-radius:inherit !important;
    border-bottom-right-radius:inherit !important;
  }
  .slf-inline-embed.slf-inline--subscribe.slf-inline--subscribe-stack-mobile .slf-submit{
    min-height:44px !important;
    padding:0 14px !important;
    border-top-left-radius:inherit !important;
    border-bottom-left-radius:inherit !important;
  }
}

/* v1.4.80.7 field long description and textarea character counter */
.slf-long-description-wrap{grid-column:1/-1;margin:-2px 0 8px}.slf-long-description{font-size:13px;line-height:1.5;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px}.slf-long-description a{font-weight:700;color:#2271b1;text-decoration:underline;text-underline-offset:2px}.slf-char-counter{font-size:12px;line-height:1.35;color:#64748b;text-align:right;margin-top:-4px}.slf-char-counter.is-over{color:#dc2626;font-weight:700}

/* Field-level Long Description and style override support. */
.slf-long-description a{color:var(--slf-long-description-link-color,currentColor)}.slf-long-description--callout{border:1px solid rgba(34,113,177,.18);border-radius:10px;background:rgba(34,113,177,.06);padding:10px 12px}.slf-long-description--compact{font-size:.92em;line-height:1.45}

/* v1.4.80.121 Account Access password and helper links */
.slf-password-control{position:relative;display:flex;align-items:center;width:100%}.slf-password-control input[type="password"],.slf-password-control input[type="text"]{width:100%;min-height:44px;padding:10px 76px 10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.14);background:#fff;color:#111;font:inherit;line-height:1.35}.slf-password-control input[type="password"]:focus,.slf-password-control input[type="text"]:focus{outline:none;border-color:rgba(0,0,0,.35);box-shadow:0 0 0 4px rgba(0,0,0,.08)}.slf-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);min-height:32px;border:0;background:transparent;color:#2563eb;font-size:12px;font-weight:800;line-height:1;cursor:pointer;padding:8px;border-radius:8px}.slf-password-toggle:focus{outline:2px solid rgba(37,99,235,.35);outline-offset:2px}.slf-account-access-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:6px 0 12px;font-size:13px;line-height:1.45;color:#475569}.slf-account-access-link{font-weight:800;color:#2563eb;text-decoration:none}.slf-account-access-link:hover{text-decoration:underline;text-underline-offset:3px}.slf-account-access-register{margin-left:auto}
@media (max-width:640px){.slf-account-access-links{display:block}.slf-account-access-register{margin:8px 0 0}}

/* CAPTCHA provider row */
.slf-captcha{margin:14px 0 4px;display:flex;align-items:center;justify-content:flex-start;min-height:24px}.slf-captcha__widget{min-height:78px}.slf-captcha__notice{font-size:12px;line-height:1.45;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:9px 12px;width:100%}
.slf-captcha.is-loading .slf-captcha__widget{opacity:.65}.slf-captcha.is-ready .slf-captcha__widget{opacity:1}.slf-captcha.is-error{align-items:stretch;flex-direction:column}.slf-captcha__error{margin-top:6px;color:#991b1b;background:#fff5f5;border:1px solid #fecaca;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.4}

/* Password strength meter for account forms. */
.slf-password-strength {
  display: grid;
  grid-template-columns: minmax(80px, 1fr) auto;
  gap: 6px 10px;
  align-items: center;
  margin-top: 8px;
  font-size: 12px;
}
.slf-password-strength__bar {
  display: block;
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.22);
}
.slf-password-strength__fill {
  display: block;
  width: 8%;
  height: 100%;
  border-radius: inherit;
  background: currentColor;
  transition: width 160ms ease;
}
.slf-password-strength__label {
  font-weight: 700;
  color: inherit;
}
.slf-password-strength__hint {
  grid-column: 1 / -1;
  color: var(--slf-muted, #64748b);
}
.slf-password-strength.is-invalid .slf-password-strength__hint {
  color: var(--slf-error, #b91c1c);
}

/* v1.4.80.171 Form Completion Experience: Guided error review. */
.slf-guided-error-summary {
  border-color: #f59e0b;
  background: #fffbeb;
  color: #92400e;
}
.slf-guided-error-summary strong,
.slf-guided-error-summary span {
  display: block;
}
.slf-guided-error-summary ul {
  margin: 8px 0 0 18px;
  padding: 0;
}
.slf-guided-error-summary li {
  margin: 3px 0;
}
.slf-row--error input,
.slf-row--error textarea,
.slf-row--error select,
.slf-row--error .slf-choicegroup,
.slf-row--error .slf-file {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, .12);
}
.slf-field-error {
  margin-top: 6px;
  color: #b91c1c;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
}
.slf-step--has-errors > .slf-step__title {
  color: #b91c1c;
}

/* v1.4.80.172 Form Completion Experience: Save and resume drafts. */
.slf-draft-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid rgba(15, 23, 42, 0.16);
  border-radius: 10px;
  background: #fff;
  color: #334155;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.slf-draft-save:hover,
.slf-draft-save:focus {
  border-color: rgba(34, 113, 177, 0.55);
  box-shadow: 0 0 0 3px rgba(34, 113, 177, 0.12);
  outline: 0;
}
.slf-draft-save[disabled] {
  opacity: .68;
  cursor: wait;
}
