/* =========================================================================
   Flutra Oferta — frontend
   Everything is scoped under .flo-app. Web fonts are enqueued separately
   (see FLO_Frontend::register_assets) so they load in parallel rather than
   through a render-blocking @import chain.
   ========================================================================= */

.flo-app{
  /* Palette. The real values are injected per install as scoped custom
     properties on this exact class — never on :root — so the plugin neither
     inherits the theme's variables nor overwrites them. */
  --flo-primary:#732580;
  --flo-primary-dark:#5C1E66;
  --flo-ink:#25012A;
  --flo-accent:#EA9341;
  --flo-ok:#1F9D6B;
  --flo-primary-rgb:115,37,128;
  --flo-ink-rgb:37,1,42;
  --flo-accent-rgb:234,147,65;

  /* Neutrals, warmed slightly toward the purple so nothing reads as grey-blue. */
  --flo-card:#FFFFFF;
  --flo-surface:#F6F3F8;
  --flo-surface-2:#FBF9FC;
  --flo-line:#E6DFEB;
  --flo-line-strong:#C9BFD3;
  --flo-muted:#6B6472;
  --flo-faint:#A79FB0;

  --flo-display:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --flo-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;

  --flo-radius:16px;
  --flo-radius-sm:11px;
  --flo-shadow:0 1px 2px rgba(var(--flo-ink-rgb),.05), 0 14px 38px -14px rgba(var(--flo-ink-rgb),.22);
  --flo-shadow-sm:0 1px 2px rgba(var(--flo-ink-rgb),.06);

  --flo-ease-out:cubic-bezier(0.23,1,0.32,1);
  --flo-ease-in-out:cubic-bezier(0.77,0,0.175,1);
  --flo-spring:cubic-bezier(0.34,1.4,0.64,1);

  --flo-pad:26px;

  /* Hard reset so the theme cannot bleed in. `all:initial` resets this element
     only, which is why the hardening block at the bottom of this file re-asserts
     the palette on descendant <button>/<a>/<input> elements too. */
  all:initial;
  display:block;
  /* A query container, so the layout responds to the width the shortcode
     actually gets (a narrow page-builder column) rather than the viewport. */
  container-type:inline-size;
  container-name:flo;
  max-width:100%;
  font-family:var(--flo-body);
  font-size:16px;
  color:var(--flo-ink);
  line-height:1.55;
  text-align:left;
  box-sizing:border-box;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.flo-app *,
.flo-app *::before,
.flo-app *::after{box-sizing:border-box;margin:0;padding:0;}
.flo-app button{font-family:inherit;font-size:inherit;line-height:inherit;}
.flo-app img{max-width:100%;display:block;}
.flo-app a{text-decoration:none;color:inherit;}
.flo-app svg{flex:none;}

.flo-inner{max-width:1120px;margin:0 auto;padding:0 20px;}

/* -------------------------------------------------------------------------
   Top bar
   ------------------------------------------------------------------------- */
.flo-topbar{background:var(--flo-ink);color:#fff;font-size:13px;}
.flo-topbar .flo-inner{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;flex-wrap:wrap;padding-top:7px;padding-bottom:7px;}
.flo-topbar a{color:#d8cfdd;transition:color .16s ease;}
.flo-topbar a:hover{color:#fff;}
.flo-topbar-msg{display:inline-flex;align-items:center;gap:9px;color:#fff;font-weight:500;}
.flo-dot{width:7px;height:7px;border-radius:50%;background:var(--flo-accent);box-shadow:0 0 0 3px rgba(var(--flo-accent-rgb),.28);animation:flo-pulse 2.6s var(--flo-ease-in-out) infinite;}
@keyframes flo-pulse{0%,100%{box-shadow:0 0 0 3px rgba(var(--flo-accent-rgb),.28);}50%{box-shadow:0 0 0 7px rgba(var(--flo-accent-rgb),0);}}

/* -------------------------------------------------------------------------
   Header
   ------------------------------------------------------------------------- */
.flo-header{background:var(--flo-card);border-bottom:1px solid var(--flo-line);}
.flo-header .flo-inner{display:flex;align-items:center;justify-content:space-between;min-height:78px;padding-top:12px;padding-bottom:12px;gap:14px;}
.flo-logo-row{display:flex;align-items:center;gap:13px;min-width:0;}
.flo-mark{width:44px;height:44px;border-radius:12px;background:var(--flo-ink);display:grid;place-items:center;flex:none;color:var(--flo-accent);}
.flo-mark svg{width:24px;height:24px;transition:transform .55s var(--flo-ease-out);}
.flo-brand{font-family:var(--flo-display);font-weight:700;color:var(--flo-ink);font-size:16.5px;letter-spacing:-.01em;line-height:1.2;min-width:0;overflow-wrap:anywhere;}
.flo-brand small{display:block;font-family:var(--flo-body);font-weight:500;color:var(--flo-muted);font-size:11px;letter-spacing:.05em;text-transform:uppercase;margin-top:2px;}
.flo-phone-pill{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--flo-ink);font-size:14px;padding:10px 15px;min-height:44px;border:1px solid var(--flo-line);border-radius:999px;transition:border-color .18s ease,transform .16s var(--flo-ease-out);}
.flo-phone-pill:hover{border-color:var(--flo-line-strong);}
.flo-phone-pill:active{transform:scale(.97);}
.flo-phone-pill svg{width:16px;height:16px;color:var(--flo-primary);}

/* -------------------------------------------------------------------------
   Intro / hero
   ------------------------------------------------------------------------- */
.flo-intro{padding:44px 20px 28px;}
.flo-intro--compact{padding:28px 20px 4px;}
.flo-banner{border-radius:var(--flo-radius);overflow:hidden;margin-bottom:26px;box-shadow:var(--flo-shadow);}
.flo-banner img{width:100%;height:auto;max-height:340px;object-fit:cover;}
.flo-eyebrow{display:inline-block;font-family:var(--flo-display);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--flo-accent);font-weight:700;}
.flo-h1{font-family:var(--flo-display);font-weight:700;font-size:clamp(27px,4.2vw,42px);line-height:1.08;letter-spacing:-.022em;margin:12px 0 12px;max-width:20ch;color:var(--flo-ink);}
.flo-lead{color:var(--flo-muted);max-width:58ch;font-size:16px;}
.flo-trust{display:flex;gap:10px 24px;flex-wrap:wrap;margin-top:22px;}
.flo-trust--bare{padding-top:22px;padding-bottom:2px;}
.flo-trust span{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--flo-ink);font-weight:500;}
.flo-trust svg{width:15px;height:15px;color:var(--flo-ok);}

/* -------------------------------------------------------------------------
   Layout grid
   minmax(0,1fr) everywhere so an input's intrinsic min-width can never force
   the column wider than its container (which clips the right edge).
   ------------------------------------------------------------------------- */
.flo-grid{display:grid;grid-template-columns:minmax(0,1fr) 328px;gap:26px;align-items:start;padding-bottom:56px;}
@container flo (max-width:940px){.flo-grid{grid-template-columns:minmax(0,1fr);}}
@media(max-width:940px){.flo-grid{grid-template-columns:minmax(0,1fr);}}

.flo-no-sidebar .flo-grid{grid-template-columns:minmax(0,1fr);max-width:800px;}
.flo-v-standard .flo-grid,
.flo-v-compact .flo-grid,
.flo-v-lite .flo-grid{padding-top:0;padding-bottom:0;}
.flo-v-compact .flo-grid{max-width:680px;}
.flo-v-lite .flo-grid{max-width:520px;}
.flo-v-compact .flo-inner,
.flo-v-lite .flo-inner{padding-left:0;padding-right:0;}

.flo-panel{min-width:0;background:var(--flo-card);border:1px solid var(--flo-line);border-radius:var(--flo-radius);box-shadow:var(--flo-shadow);overflow:hidden;}

/* Compact / lite density: tighter padding all round. */
.flo-d-compact{--flo-pad:20px;}

/* -------------------------------------------------------------------------
   Progress ruler
   ------------------------------------------------------------------------- */
.flo-progress{padding:22px var(--flo-pad) 6px;border-bottom:1px solid var(--flo-line);background:linear-gradient(180deg,#fff,var(--flo-surface-2));}
.flo-progress-meta{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:14px;}
.flo-step-label{font-family:var(--flo-display);font-weight:600;font-size:15px;color:var(--flo-ink);min-width:0;overflow-wrap:anywhere;}
.flo-step-count{font-size:12px;color:var(--flo-muted);flex:none;white-space:nowrap;font-variant-numeric:tabular-nums;}

/* No fixed height: the ruler grows with the pins and their captions, so the
   captions can never spill past the block's bottom border. */
.flo-ruler{position:relative;margin:0 2px;padding-bottom:6px;}
.flo-track{position:absolute;top:10px;left:0;right:0;height:2px;background:var(--flo-line-strong);border-radius:2px;}
.flo-fill{position:absolute;top:10px;left:0;height:2px;width:0;background:var(--flo-primary);border-radius:2px;transition:width .5s var(--flo-ease-in-out);}
.flo-ticks{position:relative;display:flex;justify-content:space-between;align-items:flex-start;}
/* flex:1 1 0 + min-width:0 gives each tick an equal, shrinkable slot so a long
   caption can never grow into its neighbour. */
.flo-tick{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1 1 0;min-width:0;}
.flo-tick:first-child{align-items:flex-start;}
.flo-tick:last-child{align-items:flex-end;}
.flo-pin{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--flo-line-strong);display:grid;place-items:center;font-size:10.5px;font-weight:600;color:var(--flo-muted);transition:.28s var(--flo-ease-out);position:relative;z-index:1;flex:none;font-variant-numeric:tabular-nums;}
.flo-tick.is-done .flo-pin{background:var(--flo-primary);border-color:var(--flo-primary);color:#fff;}
.flo-tick.is-active .flo-pin{border-color:var(--flo-primary);color:var(--flo-primary);box-shadow:0 0 0 4px rgba(var(--flo-primary-rgb),.14);}
.flo-cap{max-width:100%;font-size:10.5px;color:var(--flo-muted);text-align:center;letter-spacing:.01em;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.flo-tick:first-child .flo-cap{text-align:left;}
.flo-tick:last-child .flo-cap{text-align:right;}
.flo-tick.is-active .flo-cap{color:var(--flo-ink);}
/* Narrow: drop the captions — the current step is already spelled out above. */
@container flo (max-width:660px){.flo-cap{display:none;}.flo-ruler{padding-bottom:8px;}}
@media(max-width:660px){.flo-cap{display:none;}.flo-ruler{padding-bottom:8px;}}

/* -------------------------------------------------------------------------
   Steps
   ------------------------------------------------------------------------- */
.flo-step{display:none;padding:28px var(--flo-pad) 30px;}
.flo-step.is-active{display:block;animation:flo-fade .42s var(--flo-ease-out);}
@keyframes flo-fade{from{opacity:0;transform:translateY(7px);}to{opacity:1;transform:none;}}

.flo-h2{font-family:var(--flo-display);font-weight:600;font-size:21px;letter-spacing:-.014em;margin-bottom:5px;color:var(--flo-ink);line-height:1.25;}
.flo-h2--lite{font-size:19px;margin-top:8px;margin-bottom:16px;}
.flo-sub{color:var(--flo-muted);font-size:14.5px;margin-bottom:24px;}
.flo-req{color:var(--flo-accent);font-weight:700;}
.flo-hint{font-weight:400;color:var(--flo-faint);font-size:12px;}

/* --- Service cards --- */
.flo-cards{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;}
@container flo (max-width:540px){.flo-cards{grid-template-columns:minmax(0,1fr);}}
@media(max-width:540px){.flo-cards{grid-template-columns:minmax(0,1fr);}}
.flo-cards--lite{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;}

.flo-card{position:relative;display:flex;gap:14px;align-items:flex-start;padding:16px 40px 16px 16px;border:1.5px solid var(--flo-line);border-radius:var(--flo-radius-sm);cursor:pointer;background:#fff;text-align:left;width:100%;min-height:44px;
  transition:border-color .2s var(--flo-ease-out),background .2s ease,box-shadow .2s ease,transform .16s var(--flo-ease-out);
  opacity:0;transform:translateY(9px);animation:flo-rise .48s var(--flo-ease-out) forwards;animation-delay:calc(var(--i,0)*55ms);}
@keyframes flo-rise{to{opacity:1;transform:none;}}
.flo-card:hover{border-color:var(--flo-line-strong);background:var(--flo-surface-2);}
.flo-card:active{transform:scale(.985);}
.flo-card:focus-visible{outline:2px solid var(--flo-primary);outline-offset:2px;}
.flo-card.is-sel{border-color:var(--flo-primary);background:rgba(var(--flo-primary-rgb),.055);box-shadow:0 0 0 3px rgba(var(--flo-primary-rgb),.1);}

.flo-card--lite{flex-direction:column;align-items:flex-start;gap:9px;padding:13px 13px 13px 13px;}
.flo-card--lite .flo-card-ic{width:34px;height:34px;border-radius:9px;}
.flo-card--lite .flo-card-h{font-size:13.5px;}

.flo-card-ic{width:44px;height:44px;border-radius:12px;background:var(--flo-surface);display:grid;place-items:center;flex:none;color:var(--flo-primary);transition:background .2s var(--flo-ease-out),color .2s ease,transform .38s var(--flo-ease-out);}
.flo-card-ic svg{width:23px;height:23px;}
.flo-card.is-sel .flo-card-ic{background:var(--flo-primary);color:#fff;transform:none;}
/* Custom uploaded icons keep their own colours, so they sit on white. */
.flo-ic-img{width:24px;height:24px;object-fit:contain;display:block;}
.flo-card-ic.is-custom{background:#fff;border:1px solid var(--flo-line);}
.flo-card.is-sel .flo-card-ic.is-custom{background:#fff;}
.flo-card-txt{min-width:0;}
.flo-card-h{display:block;font-family:var(--flo-display);font-size:15px;font-weight:600;margin-bottom:3px;color:var(--flo-ink);overflow-wrap:anywhere;line-height:1.35;}
.flo-card-p{display:block;font-size:12.5px;color:var(--flo-muted);line-height:1.45;overflow-wrap:anywhere;}
.flo-card-check{position:absolute;top:13px;right:13px;width:19px;height:19px;border-radius:50%;border:2px solid var(--flo-line-strong);display:grid;place-items:center;opacity:0;transform:scale(.6);transition:.2s var(--flo-spring);}
.flo-card.is-sel .flo-card-check{opacity:1;transform:scale(1);border-color:var(--flo-primary);background:var(--flo-primary);}
.flo-card-check svg{width:11px;height:11px;color:#fff;}

/* --- Chips (single choice) --- */
.flo-chips{display:flex;flex-wrap:wrap;gap:9px;}
.flo-chip{padding:11px 17px;min-height:44px;border:1.5px solid var(--flo-line);border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;background:#fff;color:var(--flo-ink);text-align:center;
  transition:border-color .17s ease,background .17s ease,color .17s ease,transform .14s var(--flo-ease-out);}
.flo-chip:hover{border-color:var(--flo-line-strong);}
.flo-chip:active{transform:scale(.95);}
.flo-chip:focus-visible{outline:2px solid var(--flo-primary);outline-offset:2px;}
.flo-chip.is-sel{border-color:var(--flo-primary);background:var(--flo-primary);color:#fff;}

/* --- Multi-select tiles --- */
.flo-tiles{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;}
@container flo (max-width:520px){.flo-tiles{grid-template-columns:minmax(0,1fr);}}
@media(max-width:520px){.flo-tiles{grid-template-columns:minmax(0,1fr);}}
.flo-tile{display:flex;align-items:center;gap:11px;padding:12px 14px;min-height:48px;border:1.5px solid var(--flo-line);border-radius:var(--flo-radius-sm);background:#fff;cursor:pointer;text-align:left;font-size:14px;color:var(--flo-ink);
  transition:border-color .17s ease,background .17s ease,transform .14s var(--flo-ease-out);}
.flo-tile:hover{border-color:var(--flo-line-strong);background:var(--flo-surface-2);}
.flo-tile:active{transform:scale(.98);}
.flo-tile:focus-visible{outline:2px solid var(--flo-primary);outline-offset:2px;}
.flo-tile.is-sel{border-color:var(--flo-primary);background:rgba(var(--flo-primary-rgb),.055);}
.flo-tile-box{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--flo-line-strong);display:grid;place-items:center;flex:none;transition:.18s var(--flo-ease-out);}
.flo-tile-box svg{width:12px;height:12px;color:#fff;opacity:0;transform:scale(.5);transition:.18s var(--flo-spring);}
.flo-tile.is-sel .flo-tile-box{background:var(--flo-primary);border-color:var(--flo-primary);}
.flo-tile.is-sel .flo-tile-box svg{opacity:1;transform:scale(1);}

/* --- Number stepper --- */
.flo-stepper{display:inline-flex;align-items:center;gap:4px;border:1.5px solid var(--flo-line);border-radius:999px;padding:4px;background:#fff;}
.flo-step-btn{width:38px;height:38px;border-radius:50%;border:none;background:var(--flo-surface);color:var(--flo-ink);display:grid;place-items:center;cursor:pointer;
  transition:background .16s ease,color .16s ease,transform .14s var(--flo-ease-out);}
.flo-step-btn svg{width:16px;height:16px;}
.flo-step-btn:hover{background:rgba(var(--flo-primary-rgb),.1);color:var(--flo-primary);}
.flo-step-btn:active{transform:scale(.9);}
.flo-step-btn:focus-visible{outline:2px solid var(--flo-primary);outline-offset:2px;}
.flo-step-btn[disabled]{opacity:.35;cursor:not-allowed;}
.flo-step-val{min-width:88px;text-align:center;font-family:var(--flo-display);font-weight:600;font-size:15px;color:var(--flo-ink);padding:0 6px;font-variant-numeric:tabular-nums;}
.flo-step-val em{font-style:normal;font-weight:500;font-size:12.5px;color:var(--flo-muted);}

/* --- Conditional per-service blocks --- */
.flo-cond{display:none;}
.flo-cond.is-shown{display:block;animation:flo-fade .36s var(--flo-ease-out);}
.flo-cond-head{font-family:var(--flo-display);font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--flo-primary);margin-bottom:14px;padding-bottom:9px;border-bottom:1px solid var(--flo-line);}
.flo-cond + .flo-cond.is-shown{margin-top:6px;}

/* --- Fields --- */
.flo-field{margin-bottom:20px;}
.flo-field:last-child{margin-bottom:0;}
.flo-field--spaced{margin-top:26px;}
.flo-field--narrow{max-width:280px;}
.flo-cols-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;}
.flo-cols-2 > *{min-width:0;}
@container flo (max-width:540px){.flo-cols-2{grid-template-columns:minmax(0,1fr);}}
@media(max-width:540px){.flo-cols-2{grid-template-columns:minmax(0,1fr);}}

.flo-label{display:block;font-size:13px;font-weight:600;margin-bottom:8px;color:var(--flo-ink);}

.flo-app input[type=text],.flo-app input[type=tel],.flo-app input[type=email],
.flo-app input[type=date],.flo-app input[type=number],.flo-app input[type=url],
.flo-app select,.flo-app textarea{
  width:100%;padding:12px 14px;min-height:46px;border:1.5px solid var(--flo-line);border-radius:var(--flo-radius-sm);
  font-family:var(--flo-body);font-size:15px;color:var(--flo-ink);background:#fff;line-height:1.45;
  transition:border-color .17s var(--flo-ease-out),box-shadow .17s ease;-webkit-appearance:none;appearance:none;}
.flo-app textarea{resize:vertical;min-height:104px;}
.flo-app input:focus,.flo-app select:focus,.flo-app textarea:focus{outline:none;border-color:var(--flo-primary);box-shadow:0 0 0 3px rgba(var(--flo-primary-rgb),.13);}
.flo-app input::placeholder,.flo-app textarea::placeholder{color:var(--flo-faint);opacity:1;}

/* --- Urgent toggle --- */
.flo-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:15px 16px;margin-top:24px;min-height:44px;
  border:1.5px solid var(--flo-line);border-radius:var(--flo-radius-sm);background:#fff;cursor:pointer;text-align:left;
  transition:border-color .2s var(--flo-ease-out),background .2s ease;}
.flo-toggle-row.is-on{border-color:var(--flo-accent);background:rgba(var(--flo-accent-rgb),.08);}
.flo-toggle-row:focus-visible{outline:2px solid var(--flo-primary);outline-offset:2px;}
.flo-toggle-txt{min-width:0;overflow-wrap:anywhere;}
.flo-toggle-txt strong{display:block;font-family:var(--flo-display);font-size:14.5px;font-weight:600;color:var(--flo-ink);}
.flo-toggle-txt span{font-size:12.5px;color:var(--flo-muted);}
.flo-switch{width:48px;height:28px;border-radius:999px;background:var(--flo-line-strong);position:relative;flex:none;transition:background .22s var(--flo-ease-out);}
.flo-toggle-row.is-on .flo-switch{background:var(--flo-accent);}
.flo-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .24s var(--flo-spring);box-shadow:0 1px 3px rgba(0,0,0,.22);}
.flo-toggle-row.is-on .flo-knob{left:23px;}

/* --- Upload --- */
.flo-drop{display:block;width:100%;border:1.5px dashed var(--flo-line-strong);border-radius:var(--flo-radius-sm);padding:28px 18px;text-align:center;cursor:pointer;background:var(--flo-surface-2);
  transition:border-color .18s var(--flo-ease-out),background .18s ease;}
.flo-drop:hover,.flo-drop:focus-visible,.flo-drop.is-dragging{border-color:var(--flo-primary);background:rgba(var(--flo-primary-rgb),.05);outline:none;}
.flo-drop svg{width:30px;height:30px;color:var(--flo-muted);margin:0 auto 9px;transition:transform .38s var(--flo-ease-out),color .18s ease;}
.flo-drop:hover svg{transform:translateY(-3px);color:var(--flo-primary);}
.flo-drop strong{display:block;font-size:14px;font-family:var(--flo-display);font-weight:600;color:var(--flo-ink);}
.flo-drop span{display:block;font-size:12.5px;color:var(--flo-muted);margin-top:3px;}
.flo-filelist{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px;}
.flo-file-tag{display:inline-flex;align-items:center;gap:8px;max-width:100%;background:var(--flo-surface);border:1px solid var(--flo-line);border-radius:9px;padding:8px 11px;font-size:12.5px;color:var(--flo-ink);animation:flo-fade .26s var(--flo-ease-out);}
.flo-file-tag svg{width:13px;height:13px;color:var(--flo-muted);}
.flo-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px;}
.flo-file-tag button{background:none;border:none;cursor:pointer;color:var(--flo-muted);font-size:17px;line-height:1;padding:0 2px;transition:color .15s ease,transform .14s var(--flo-ease-out);}
.flo-file-tag button:hover{color:var(--flo-primary-dark);}
.flo-file-tag button:active{transform:scale(.85);}

/* --- Review list --- */
.flo-review{display:flex;flex-direction:column;}
.flo-review-row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--flo-line);opacity:0;transform:translateY(6px);animation:flo-rise .42s var(--flo-ease-out) forwards;}
.flo-review-row:last-child{border-bottom:none;}
.flo-review-k{color:var(--flo-muted);font-size:13.5px;flex:none;width:42%;}
.flo-review-v{font-weight:600;text-align:right;font-size:13.5px;color:var(--flo-ink);min-width:0;overflow-wrap:anywhere;}

/* --- Consent --- */
.flo-consent{display:flex;gap:11px;align-items:flex-start;margin-top:22px;font-size:13px;color:var(--flo-muted);line-height:1.5;cursor:pointer;}
.flo-consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--flo-primary);flex:none;}
.flo-consent a{color:var(--flo-primary);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.flo-inline-err{color:#B3261E;font-size:12.5px;margin-top:8px;display:none;}
.flo-inline-err.is-shown{display:block;animation:flo-fade .2s var(--flo-ease-out);}

/* -------------------------------------------------------------------------
   Navigation
   ------------------------------------------------------------------------- */
.flo-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px var(--flo-pad);border-top:1px solid var(--flo-line);background:var(--flo-surface-2);}
.flo-nav--single{justify-content:stretch;}
.flo-btn{font-family:var(--flo-display);font-weight:600;font-size:15px;border-radius:var(--flo-radius-sm);padding:13px 22px;min-height:48px;cursor:pointer;border:1.5px solid transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  transition:background .17s ease,border-color .17s ease,transform .14s var(--flo-ease-out),box-shadow .17s ease,filter .17s ease;}
.flo-btn svg{width:16px;height:16px;}
.flo-btn--block{width:100%;}
.flo-btn:disabled{opacity:.55;cursor:not-allowed;}
.flo-btn.is-hidden{visibility:hidden;}
.flo-btn.is-loading{pointer-events:none;opacity:.85;}
.flo-btn:focus-visible{outline:2px solid var(--flo-primary);outline-offset:2px;}

.flo-btn-primary{background:var(--flo-primary);color:#fff;box-shadow:0 7px 18px -9px rgba(var(--flo-primary-rgb),.85);}
.flo-btn-primary:hover{background:var(--flo-primary-dark);}
.flo-btn-primary:active{transform:scale(.97);}
.flo-btn-primary:hover svg:last-child{transform:translateX(3px);}
.flo-btn-primary svg{transition:transform .26s var(--flo-ease-out);}

.flo-btn-ghost{background:#fff;color:var(--flo-ink);border-color:var(--flo-line);}
.flo-btn-ghost:hover{border-color:var(--flo-line-strong);}
.flo-btn-ghost:active{transform:scale(.97);}

/* WhatsApp brand green, white label enforced (see the hardening block). */
.flo-btn-wa{background:#25D366;color:#fff;}
.flo-btn-wa:hover{filter:brightness(1.05);}
.flo-btn-wa:active{transform:scale(.97);}
.flo-btn-wa--block{width:100%;margin-top:14px;}

.flo-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:flo-spin .7s linear infinite;}
@keyframes flo-spin{to{transform:rotate(360deg);}}

/* -------------------------------------------------------------------------
   Sidebar
   ------------------------------------------------------------------------- */
.flo-aside{position:sticky;top:20px;display:flex;flex-direction:column;gap:16px;min-width:0;}
@container flo (max-width:940px){.flo-aside{position:static;}}
@media(max-width:940px){.flo-aside{position:static;}}

.flo-price-card{background:var(--flo-ink);color:#fff;border-radius:var(--flo-radius);padding:20px;box-shadow:var(--flo-shadow);}
.flo-price-card .flo-eyebrow{color:var(--flo-accent);font-size:10.5px;}
.flo-price-card h4{font-family:var(--flo-display);font-size:14px;font-weight:600;color:#fff;margin-top:5px;}
.flo-price-value{font-family:var(--flo-display);font-size:26px;font-weight:700;letter-spacing:-.02em;margin-top:10px;color:#fff;line-height:1.15;overflow-wrap:anywhere;}
.flo-price-note{font-size:11.5px;color:#c9bcd0;margin-top:9px;line-height:1.5;}

.flo-summary{background:var(--flo-card);border:1px solid var(--flo-line);border-radius:var(--flo-radius);box-shadow:var(--flo-shadow);overflow:hidden;}
.flo-summary-head{padding:16px 18px;background:var(--flo-ink);color:#fff;}
.flo-summary-head .flo-eyebrow{color:var(--flo-accent);font-size:10.5px;}
.flo-summary-head h4{font-family:var(--flo-display);font-size:16px;font-weight:600;margin-top:4px;color:#fff;}
.flo-summary-body{padding:6px 18px 16px;}
.flo-summary-empty{color:var(--flo-faint);font-size:13.5px;padding:12px 0;}
.flo-summary-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px dashed var(--flo-line);font-size:13.5px;animation:flo-fade .3s var(--flo-ease-out);}
.flo-summary-row:last-child{border-bottom:none;}
.flo-summary-k{color:var(--flo-muted);flex:none;max-width:48%;overflow-wrap:anywhere;}
.flo-summary-v{font-weight:600;text-align:right;color:var(--flo-ink);min-width:0;overflow-wrap:anywhere;}

.flo-help{background:#fff;border:1px solid var(--flo-line);border-radius:var(--flo-radius);padding:18px;font-size:13px;color:var(--flo-muted);}
.flo-help strong{display:block;color:var(--flo-ink);font-family:var(--flo-display);font-weight:600;margin-bottom:6px;font-size:14px;}
.flo-help p{margin-bottom:4px;}
.flo-help-phones a{color:var(--flo-primary);font-weight:600;}

/* -------------------------------------------------------------------------
   Success screen
   ------------------------------------------------------------------------- */
.flo-done{display:none;text-align:center;padding:48px var(--flo-pad) 44px;}
.flo-done.is-shown{display:block;animation:flo-fade .5s var(--flo-ease-out);}
.flo-done-badge{width:74px;height:74px;border-radius:50%;background:rgba(31,157,107,.13);display:grid;place-items:center;margin:0 auto 20px;animation:flo-pop .55s var(--flo-spring);}
@keyframes flo-pop{0%{transform:scale(.6);opacity:0;}60%{transform:scale(1.08);}100%{transform:scale(1);opacity:1;}}
.flo-done-badge svg{width:38px;height:38px;color:var(--flo-ok);}
.flo-done .flo-h2{font-size:24px;margin-bottom:8px;}
.flo-done p{color:var(--flo-muted);max-width:48ch;margin:0 auto;}
.flo-ref{display:inline-block;font-size:13px;background:var(--flo-surface);padding:9px 15px;border-radius:9px;margin-top:16px;color:var(--flo-ink);font-weight:600;font-variant-numeric:tabular-nums;}
.flo-next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:600px;margin:28px auto 0;text-align:left;}
@container flo (max-width:580px){.flo-next{grid-template-columns:minmax(0,1fr);}}
@media(max-width:580px){.flo-next{grid-template-columns:minmax(0,1fr);}}
.flo-next-card{background:var(--flo-surface);border-radius:var(--flo-radius-sm);padding:15px;}
.flo-next-num{font-family:var(--flo-display);font-size:12px;color:var(--flo-accent);font-weight:700;}
.flo-next-card strong{display:block;font-family:var(--flo-display);font-size:14px;font-weight:600;margin:6px 0 3px;color:var(--flo-ink);}
.flo-next-card span{font-size:12.5px;color:var(--flo-muted);line-height:1.5;}

.flo-wa-share{max-width:440px;margin:28px auto 0;padding:18px;border:1px solid var(--flo-line);border-radius:var(--flo-radius);background:var(--flo-surface-2);}
.flo-wa-share .flo-btn-wa{width:100%;}
.flo-wa-note{font-size:11.5px;color:var(--flo-muted);margin-top:11px;line-height:1.55;text-align:left;}

.flo-done-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px;}

.flo-footnote{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;text-align:center;font-size:12px;color:var(--flo-muted);margin:16px auto 0;max-width:1120px;padding:0 20px 24px;}

/* -------------------------------------------------------------------------
   Honeypot — offscreen, never display:none (bots skip hidden fields).
   ------------------------------------------------------------------------- */
.flo-hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;}

/* -------------------------------------------------------------------------
   Toast + validation shake
   ------------------------------------------------------------------------- */
@keyframes flo-shake{10%,90%{transform:translateX(-1px);}20%,80%{transform:translateX(2px);}30%,50%,70%{transform:translateX(-4px);}40%,60%{transform:translateX(4px);}}
.flo-shake{animation:flo-shake .42s var(--flo-ease-out);}

/* Appended to <body>, not the widget, so the container query context does not
   anchor this position:fixed element to the panel. */
.flo-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(140%);
  background:#25012A;color:#fff;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  padding:13px 20px;border-radius:12px;font-size:14px;font-weight:500;line-height:1.45;
  box-shadow:0 14px 36px -10px rgba(0,0,0,.5);z-index:99999;max-width:min(90vw,420px);
  transition:transform .42s cubic-bezier(0.23,1,0.32,1);}
.flo-toast.is-shown{transform:translateX(-50%) translateY(0);}

/* -------------------------------------------------------------------------
   Narrow containers: trim padding so the nav row keeps fitting.
   ------------------------------------------------------------------------- */
@container flo (max-width:440px){
  .flo-app{--flo-pad:18px;}
  .flo-nav{gap:10px;}
  .flo-h2{font-size:19px;}
  .flo-cards--lite{grid-template-columns:minmax(0,1fr);}
  .flo-step-val{min-width:70px;}
}
@media(max-width:440px){
  .flo-app{--flo-pad:18px;}
  .flo-nav{gap:10px;}
  .flo-h2{font-size:19px;}
  .flo-cards--lite{grid-template-columns:minmax(0,1fr);}
  .flo-step-val{min-width:70px;}
}

/* -------------------------------------------------------------------------
   Sticky navigation on narrow screens
   -------------------------------------------------------------------------
   On a phone a step is usually taller than the viewport, so the Back /
   Continue row sits below the fold and the visitor has to scroll to the end of
   every step to find it. Pinning the row to the bottom edge keeps it one thumb
   away while the step is being filled in.

   Two things make this work:

   • `.flo-panel` swaps `overflow:hidden` for `overflow:clip`. Both clip the
     same way — rounded corners included — but `hidden` establishes a scroll
     container, which silently disables `position:sticky` inside it, while
     `clip` does not. A browser without `overflow:clip` keeps `hidden`, the row
     simply stays in flow, and the form works exactly as it did before.

   • `position:fixed` is not an option: `.flo-app` is a
     `container-type:inline-size` element, so its layout containment makes it
     the containing block for fixed descendants — the same reason the toast is
     appended to <body>. Sticky is unaffected by containment.

   The row is the panel's last child, so its sticky range ends at the panel's
   own bottom edge: it never floats over the page above or below the widget,
   and it settles back into place as the visitor reaches the end of the step.
   On the success screen the script sets the row to `display:none`, so nothing
   is left pinned once the request is sent.
   ------------------------------------------------------------------------- */
@container flo (max-width:700px){
  .flo-panel{overflow:clip;}
  .flo-nav{position:sticky;bottom:0;z-index:12;
    padding-bottom:max(20px,env(safe-area-inset-bottom,0px));
    box-shadow:0 -12px 26px -20px rgba(var(--flo-ink-rgb),.75);}
  .flo-nav [data-flo-back]{flex:0 0 auto;}
  .flo-nav [data-flo-next]{flex:1 1 auto;}
}
@media(max-width:700px){
  .flo-panel{overflow:clip;}
  .flo-nav{position:sticky;bottom:0;z-index:12;
    padding-bottom:max(20px,env(safe-area-inset-bottom,0px));
    box-shadow:0 -12px 26px -20px rgba(var(--flo-ink-rgb),.75);}
  .flo-nav [data-flo-back]{flex:0 0 auto;}
  .flo-nav [data-flo-next]{flex:1 1 auto;}
}

/* -------------------------------------------------------------------------
   Accessibility
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .flo-app *,.flo-app *::before,.flo-app *::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;}
  .flo-card{opacity:1;transform:none;}
  .flo-review-row{opacity:1;transform:none;}
}
/* Gate hover transforms on touch, where :hover sticks after a tap. */
@media (hover: none){
  .flo-card:hover .flo-card-ic{transform:none;}
  .flo-drop:hover svg{transform:none;}
  .flo-btn-primary:hover svg{transform:none;}
  .flo-header:hover .flo-mark svg{transform:none;}
}
@media (hover: hover){
  .flo-header:hover .flo-mark svg{transform:rotate(-8deg) scale(1.06);}
  .flo-card:hover .flo-card-ic{transform:translateY(-2px) rotate(-3deg);}
  .flo-card:hover .flo-card-ic.is-custom{transform:translateY(-2px);}
}

/* =========================================================================
   Theme-isolation hardening
   -------------------------------------------------------------------------
   Many themes and page builders style bare <button>, <a> and form controls in
   the content area with a compound selector such as `.entry-content button`
   (specificity 0,1,1). That beats a single-class component rule like `.flo-btn`
   (0,1,0), so the theme's colours bleed into the widget even though `.flo-app`
   uses `all:initial` — which resets this element only, not its descendants.

   Each rule below is therefore written twice:
     • `#flo-app …`                       — ID specificity, first instance.
     • `.flo-app.flo-app.flo-app …`       — 0,3,0, every instance on the page.
   Both carry `!important`, which together beats any realistic theme rule,
   including a theme that puts `!important` on `button` or `a` at class level.
   Bare spans and divs are left alone: themes do not style those.
   ========================================================================= */

/* Themes reach for `text-transform` and `letter-spacing` on headings — and
   sometimes on `*` — which `all:initial` on the root cannot stop, because it
   resets this element only. Neutralise both across every descendant at ID /
   0,3,0 specificity, then re-assert the handful of places where the design
   deliberately uses them (the rules below win by coming later). */
#flo-app *,
.flo-app.flo-app.flo-app *{
  text-transform:none!important;
  letter-spacing:normal!important;
  font-style:normal;
  text-indent:0!important;
  text-shadow:none!important;
}
#flo-app h1,#flo-app h2,#flo-app h3,#flo-app h4,#flo-app h5,#flo-app h6,
#flo-app p,#flo-app label,#flo-app input,#flo-app textarea,#flo-app select,
.flo-app.flo-app.flo-app h1,.flo-app.flo-app.flo-app h2,.flo-app.flo-app.flo-app h3,
.flo-app.flo-app.flo-app h4,.flo-app.flo-app.flo-app h5,.flo-app.flo-app.flo-app h6,
.flo-app.flo-app.flo-app p,.flo-app.flo-app.flo-app label,
.flo-app.flo-app.flo-app input,.flo-app.flo-app.flo-app textarea,.flo-app.flo-app.flo-app select{
  font-family:var(--flo-body)!important;
}
/* …and back on for the display type. */
#flo-app .flo-h1,#flo-app .flo-h2,#flo-app .flo-brand,#flo-app .flo-eyebrow,
#flo-app .flo-step-label,#flo-app .flo-card-h,#flo-app .flo-cond-head,#flo-app .flo-step-val,
#flo-app .flo-toggle-txt strong,#flo-app .flo-drop strong,#flo-app .flo-btn,
#flo-app .flo-summary-head h4,#flo-app .flo-price-card h4,#flo-app .flo-price-value,
#flo-app .flo-next-card strong,#flo-app .flo-next-num,#flo-app .flo-help strong,
.flo-app.flo-app.flo-app .flo-h1,.flo-app.flo-app.flo-app .flo-h2,
.flo-app.flo-app.flo-app .flo-brand,.flo-app.flo-app.flo-app .flo-eyebrow,
.flo-app.flo-app.flo-app .flo-step-label,.flo-app.flo-app.flo-app .flo-card-h,
.flo-app.flo-app.flo-app .flo-cond-head,.flo-app.flo-app.flo-app .flo-step-val,
.flo-app.flo-app.flo-app .flo-toggle-txt strong,.flo-app.flo-app.flo-app .flo-drop strong,
.flo-app.flo-app.flo-app .flo-btn,.flo-app.flo-app.flo-app .flo-summary-head h4,
.flo-app.flo-app.flo-app .flo-price-card h4,.flo-app.flo-app.flo-app .flo-price-value,
.flo-app.flo-app.flo-app .flo-next-card strong,.flo-app.flo-app.flo-app .flo-next-num,
.flo-app.flo-app.flo-app .flo-help strong{
  font-family:var(--flo-display)!important;
}
/* …and the deliberate uppercase / tracking. */
#flo-app .flo-eyebrow,
.flo-app.flo-app.flo-app .flo-eyebrow{text-transform:uppercase!important;letter-spacing:.16em!important;}
#flo-app .flo-cond-head,
.flo-app.flo-app.flo-app .flo-cond-head{text-transform:uppercase!important;letter-spacing:.07em!important;}
#flo-app .flo-brand small,
.flo-app.flo-app.flo-app .flo-brand small{text-transform:uppercase!important;letter-spacing:.05em!important;}
#flo-app .flo-h1,
.flo-app.flo-app.flo-app .flo-h1{letter-spacing:-.022em!important;}
#flo-app .flo-h2,
.flo-app.flo-app.flo-app .flo-h2{letter-spacing:-.014em!important;}
#flo-app .flo-price-value,
.flo-app.flo-app.flo-app .flo-price-value{letter-spacing:-.02em!important;}
#flo-app .flo-step-val em,
.flo-app.flo-app.flo-app .flo-step-val em{font-style:normal!important;}

/* Neutralise inherited theme chrome on native elements. */
#flo-app button,
.flo-app.flo-app.flo-app button{
  -webkit-appearance:none!important;appearance:none!important;
  background:none!important;background-color:transparent!important;background-image:none!important;
  color:inherit!important;box-shadow:none!important;text-shadow:none!important;
  text-transform:none!important;letter-spacing:normal!important;white-space:normal!important;
  min-height:0!important;width:auto!important;float:none!important;
}
#flo-app a,
.flo-app.flo-app.flo-app a{color:inherit!important;background:none!important;text-decoration:none!important;}
#flo-app .flo-consent a,
.flo-app.flo-app.flo-app .flo-consent a{text-decoration:underline!important;}

/* Service cards. */
#flo-app .flo-card,
.flo-app.flo-app.flo-app .flo-card{background:#fff!important;border:1.5px solid var(--flo-line)!important;border-radius:var(--flo-radius-sm)!important;width:100%!important;min-width:0!important;max-width:100%!important;overflow-wrap:anywhere;}
#flo-app .flo-card:hover,
.flo-app.flo-app.flo-app .flo-card:hover{background:var(--flo-surface-2)!important;border-color:var(--flo-line-strong)!important;}
#flo-app .flo-card.is-sel,
.flo-app.flo-app.flo-app .flo-card.is-sel{background:rgba(var(--flo-primary-rgb),.055)!important;border-color:var(--flo-primary)!important;box-shadow:0 0 0 3px rgba(var(--flo-primary-rgb),.1)!important;}
#flo-app .flo-card-ic,
.flo-app.flo-app.flo-app .flo-card-ic{background:var(--flo-surface)!important;color:var(--flo-primary)!important;}
#flo-app .flo-card.is-sel .flo-card-ic,
.flo-app.flo-app.flo-app .flo-card.is-sel .flo-card-ic{background:var(--flo-primary)!important;color:#fff!important;}
#flo-app .flo-card-ic.is-custom,
#flo-app .flo-card.is-sel .flo-card-ic.is-custom,
.flo-app.flo-app.flo-app .flo-card-ic.is-custom,
.flo-app.flo-app.flo-app .flo-card.is-sel .flo-card-ic.is-custom{background:#fff!important;}
#flo-app .flo-card-h,
.flo-app.flo-app.flo-app .flo-card-h{color:var(--flo-ink)!important;}
#flo-app .flo-card-p,
.flo-app.flo-app.flo-app .flo-card-p{color:var(--flo-muted)!important;}
#flo-app .flo-card-check,
.flo-app.flo-app.flo-app .flo-card-check{border:2px solid var(--flo-line-strong)!important;}
#flo-app .flo-card.is-sel .flo-card-check,
.flo-app.flo-app.flo-app .flo-card.is-sel .flo-card-check{background:var(--flo-primary)!important;border-color:var(--flo-primary)!important;}

/* Chips. */
#flo-app .flo-chip,
.flo-app.flo-app.flo-app .flo-chip{background:#fff!important;color:var(--flo-ink)!important;border:1.5px solid var(--flo-line)!important;border-radius:999px!important;}
#flo-app .flo-chip.is-sel,
.flo-app.flo-app.flo-app .flo-chip.is-sel{background:var(--flo-primary)!important;color:#fff!important;border-color:var(--flo-primary)!important;}

/* Tiles. */
#flo-app .flo-tile,
.flo-app.flo-app.flo-app .flo-tile{background:#fff!important;color:var(--flo-ink)!important;border:1.5px solid var(--flo-line)!important;border-radius:var(--flo-radius-sm)!important;width:100%!important;}
#flo-app .flo-tile.is-sel,
.flo-app.flo-app.flo-app .flo-tile.is-sel{background:rgba(var(--flo-primary-rgb),.055)!important;border-color:var(--flo-primary)!important;}
#flo-app .flo-tile-box,
.flo-app.flo-app.flo-app .flo-tile-box{border:1.5px solid var(--flo-line-strong)!important;border-radius:6px!important;width:20px!important;}
#flo-app .flo-tile.is-sel .flo-tile-box,
.flo-app.flo-app.flo-app .flo-tile.is-sel .flo-tile-box{background:var(--flo-primary)!important;border-color:var(--flo-primary)!important;}

/* Stepper. */
#flo-app .flo-step-btn,
.flo-app.flo-app.flo-app .flo-step-btn{background:var(--flo-surface)!important;color:var(--flo-ink)!important;border-radius:50%!important;width:38px!important;min-height:38px!important;}
#flo-app .flo-step-btn:hover,
.flo-app.flo-app.flo-app .flo-step-btn:hover{background:rgba(var(--flo-primary-rgb),.1)!important;color:var(--flo-primary)!important;}

/* Urgent toggle + drop zone (both are <button> elements). */
#flo-app .flo-toggle-row,
.flo-app.flo-app.flo-app .flo-toggle-row{background:#fff!important;border:1.5px solid var(--flo-line)!important;border-radius:var(--flo-radius-sm)!important;width:100%!important;}
#flo-app .flo-toggle-row.is-on,
.flo-app.flo-app.flo-app .flo-toggle-row.is-on{background:rgba(var(--flo-accent-rgb),.08)!important;border-color:var(--flo-accent)!important;}
#flo-app .flo-drop,
.flo-app.flo-app.flo-app .flo-drop{background:var(--flo-surface-2)!important;border:1.5px dashed var(--flo-line-strong)!important;border-radius:var(--flo-radius-sm)!important;width:100%!important;color:inherit!important;}
#flo-app .flo-drop:hover,
#flo-app .flo-drop.is-dragging,
.flo-app.flo-app.flo-app .flo-drop:hover,
.flo-app.flo-app.flo-app .flo-drop.is-dragging{background:rgba(var(--flo-primary-rgb),.05)!important;border-color:var(--flo-primary)!important;}

/* Buttons (also used as <a class="flo-btn …">). */
#flo-app .flo-btn,
.flo-app.flo-app.flo-app .flo-btn{border:1.5px solid transparent!important;border-radius:var(--flo-radius-sm)!important;min-height:48px!important;}
#flo-app .flo-btn--block,
.flo-app.flo-app.flo-app .flo-btn--block{width:100%!important;}
#flo-app .flo-btn-primary,
#flo-app a.flo-btn-primary,
.flo-app.flo-app.flo-app .flo-btn-primary,
.flo-app.flo-app.flo-app a.flo-btn-primary{background:var(--flo-primary)!important;color:#fff!important;box-shadow:0 7px 18px -9px rgba(var(--flo-primary-rgb),.85)!important;}
#flo-app .flo-btn-primary:hover,
.flo-app.flo-app.flo-app .flo-btn-primary:hover{background:var(--flo-primary-dark)!important;}
#flo-app .flo-btn-ghost,
.flo-app.flo-app.flo-app .flo-btn-ghost{background:#fff!important;color:var(--flo-ink)!important;border-color:var(--flo-line)!important;}
#flo-app .flo-btn-ghost:hover,
.flo-app.flo-app.flo-app .flo-btn-ghost:hover{border-color:var(--flo-line-strong)!important;}

/* WhatsApp: brand green background, WHITE label. Written at ID / 0,3,0
   specificity with !important so a theme's link colour (or `.flo-help a`
   further up this file) can never repaint the text. */
#flo-app .flo-btn-wa,
#flo-app a.flo-btn-wa,
#flo-app .flo-btn-wa span,
#flo-app .flo-btn-wa svg,
.flo-app.flo-app.flo-app .flo-btn-wa,
.flo-app.flo-app.flo-app a.flo-btn-wa,
.flo-app.flo-app.flo-app .flo-btn-wa span,
.flo-app.flo-app.flo-app .flo-btn-wa svg{color:#fff!important;fill:currentColor;}
#flo-app .flo-btn-wa,
#flo-app a.flo-btn-wa,
.flo-app.flo-app.flo-app .flo-btn-wa,
.flo-app.flo-app.flo-app a.flo-btn-wa{background:#25D366!important;border-color:#25D366!important;text-decoration:none!important;}

/* Links that carry an intentional colour. */
#flo-app .flo-topbar a,
.flo-app.flo-app.flo-app .flo-topbar a{color:#d8cfdd!important;}
#flo-app .flo-topbar a:hover,
.flo-app.flo-app.flo-app .flo-topbar a:hover{color:#fff!important;}
#flo-app .flo-help-phones a,
.flo-app.flo-app.flo-app .flo-help-phones a{color:var(--flo-primary)!important;}
#flo-app .flo-consent a,
.flo-app.flo-app.flo-app .flo-consent a{color:var(--flo-primary)!important;}
#flo-app .flo-phone-pill,
.flo-app.flo-app.flo-app .flo-phone-pill{color:var(--flo-ink)!important;border:1px solid var(--flo-line)!important;}

/* Form controls. */
#flo-app input[type=text],#flo-app input[type=tel],#flo-app input[type=email],
#flo-app input[type=date],#flo-app input[type=number],#flo-app input[type=url],
#flo-app select,#flo-app textarea,
.flo-app.flo-app.flo-app input[type=text],.flo-app.flo-app.flo-app input[type=tel],
.flo-app.flo-app.flo-app input[type=email],.flo-app.flo-app.flo-app input[type=date],
.flo-app.flo-app.flo-app input[type=number],.flo-app.flo-app.flo-app input[type=url],
.flo-app.flo-app.flo-app select,.flo-app.flo-app.flo-app textarea{
  background:#fff!important;color:var(--flo-ink)!important;border:1.5px solid var(--flo-line)!important;
  border-radius:var(--flo-radius-sm)!important;width:100%!important;max-width:100%!important;font-family:var(--flo-body)!important;
}
#flo-app input:focus,#flo-app select:focus,#flo-app textarea:focus,
.flo-app.flo-app.flo-app input:focus,.flo-app.flo-app.flo-app select:focus,.flo-app.flo-app.flo-app textarea:focus{
  border-color:var(--flo-primary)!important;
}

/* Headings and paragraphs: themes love to restyle these inside the content. */
#flo-app .flo-h1,#flo-app .flo-h2,
.flo-app.flo-app.flo-app .flo-h1,.flo-app.flo-app.flo-app .flo-h2{
  font-family:var(--flo-display)!important;color:var(--flo-ink)!important;text-transform:none!important;
}
#flo-app .flo-summary-head h4,#flo-app .flo-price-card h4,
.flo-app.flo-app.flo-app .flo-summary-head h4,.flo-app.flo-app.flo-app .flo-price-card h4{color:#fff!important;}

/* Grid safety: never let a theme's min-width force horizontal overflow. */
#flo-app .flo-cards,#flo-app .flo-tiles,
.flo-app.flo-app.flo-app .flo-cards,.flo-app.flo-app.flo-app .flo-tiles{width:100%!important;max-width:100%!important;}
