/* FLOWLINE Website Test Lab.
   Scoped entirely under .fltl so it can never leak into Elementor's styles.
   No animation library, no icon font — the five icons are inline SVG and the
   arrow is a text glyph. */

.fltl{
  --fl-navy:#091725; --fl-navy2:#102537; --fl-struct:#152E42;
  --fl-line:#294052; --fl-aqua:#35D1C4; --fl-light:#F4F6F5;
  --fl-body:#B8C5CD; --fl-muted:#8FA2AF;
  color:var(--fl-body);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

/* ------------------------------------------------------------ shared fields */
.fltl-label{
  display:block;
  font-family:Manrope,system-ui,sans-serif;
  font-weight:800;
  font-size:11px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--fl-aqua);
  margin:0 0 8px;
}
.fltl-opt{font-weight:400;letter-spacing:0;text-transform:none;color:var(--fl-muted)}
.fltl-req{font-weight:400;letter-spacing:0;text-transform:none;color:var(--fl-aqua)}

.fltl-text,.fltl-select,.fltl textarea{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  background:rgba(9,23,37,.6);
  border:1px solid var(--fl-line);
  border-radius:8px;
  color:#fff;
  font:inherit;
  font-size:16px;            /* 16px stops iOS zooming the page on focus */
  padding:12px 14px;
}
.fltl-text::placeholder{color:#6E8090}
.fltl-text:focus-visible,.fltl-select:focus-visible,.fltl textarea:focus-visible,
.fltl button:focus-visible,.fltl a:focus-visible{
  outline:2px solid var(--fl-aqua);
  outline-offset:2px;
}
.fltl-inputrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fltl-inputrow .fltl-text{flex:1 1 200px;width:auto}

.fltl-help{
  margin:8px 0 0;
  font-size:13px;
  line-height:1.5;
  color:var(--fl-muted);
  word-break:break-all;
  min-height:1.2em;          /* reserve the line so validation never shifts layout */
}
.fltl-help.is-error{color:#FFB4A8}

/* ------------------------------------------------------------------- intro */
.fltl-intro{
  background:var(--fl-struct);
  border:1px solid var(--fl-line);
  border-radius:12px;
  padding:22px 24px;
}
.fltl-privacy{
  margin:0;
  font-size:14px;
  line-height:1.62;
  color:var(--fl-muted);
  max-width:74ch;
}
.fltl-intro__opts{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid rgba(41,64,82,.8);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  gap:18px 26px;
}
@media (max-width:767px){
  .fltl-intro{padding:18px}
  .fltl-intro__opts{grid-template-columns:minmax(0,1fr)}
}
.fltl-other{margin-top:14px}

/* ------------------------------------------------------------------- cards */
.fltl-cards{margin-top:20px;display:flex;flex-direction:column;gap:16px}

.fltl-card{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(53,209,196,.16);
  border-radius:10px;
  padding:22px 24px;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  gap:20px 34px;
  align-items:start;
}
@media (max-width:860px){
  .fltl-card{grid-template-columns:minmax(0,1fr);padding:20px}
}

.fltl-card__cat{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 8px;
  font-family:Manrope,system-ui,sans-serif;
  font-weight:800;
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--fl-aqua);
}
.fltl-ico{flex:0 0 auto;display:block;color:var(--fl-aqua)}

.fltl-card__h{
  font-family:Manrope,system-ui,sans-serif;
  font-weight:700;
  font-size:21px;
  line-height:1.22;
  letter-spacing:-.5px;
  color:#fff;
  margin:0 0 10px;
}
.fltl-card__what{margin:0 0 14px;font-size:15px;line-height:1.6}

.fltl-card__tell{
  margin:0 0 10px;
  font-size:13.5px;
  line-height:1.58;
  color:var(--fl-muted);
  padding-left:12px;
  border-left:2px solid rgba(53,209,196,.30);
}
.fltl-card__tell:last-child{margin-bottom:0}
.fltl-card__tell span{
  display:block;
  font-family:Manrope,system-ui,sans-serif;
  font-weight:800;
  font-size:10px;
  letter-spacing:1.3px;
  text-transform:uppercase;
  color:var(--fl-aqua);
  margin-bottom:4px;
}
/* the "cannot" note is deliberately cooler than the "can" note */
.fltl-card__not{border-left-color:rgba(143,162,175,.45)}
.fltl-card__not span{color:#9FB2BE}

/* --------------------------------------------------------------- station */
.fltl-station{
  background:rgba(9,23,37,.45);
  border:1px solid var(--fl-line);
  border-radius:9px;
  padding:18px;
}
.fltl-station__go{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}

.fltl-launch{
  display:inline-block;
  background:var(--fl-aqua);
  color:var(--fl-navy)!important;
  text-decoration:none!important;
  font-weight:800;
  font-size:14px;
  line-height:1.2;
  border-radius:999px;
  padding:13px 20px;
  min-height:44px;
  box-sizing:border-box;
  transition:background .18s ease;
}
.fltl-launch:hover{background:#4FE0D4}
.fltl-launch.is-disabled{
  background:rgba(53,209,196,.20);
  color:#7E939F!important;
  cursor:not-allowed;
}

.fltl-copy{
  background:transparent;
  border:1px solid var(--fl-line);
  color:#C8D2D8;
  border-radius:999px;
  padding:11px 16px;
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  min-height:44px;
}
.fltl-copy:hover{border-color:var(--fl-aqua);color:#fff}

/* ------------------------------------------------------- advanced (quieter) */
.fltl-cards--advanced{margin-top:16px}
.fltl-card--quiet{
  background:transparent;
  border-style:dashed;
  border-color:rgba(41,64,82,.9);
}
.fltl-card--quiet .fltl-card__h{font-size:17px}
.fltl-card--quiet .fltl-launch{
  background:transparent;
  color:#fff!important;
  border:1px solid var(--fl-line);
}
.fltl-card--quiet .fltl-launch:hover{background:rgba(53,209,196,.10);border-color:var(--fl-aqua)}
.fltl-card--quiet .fltl-launch.is-disabled{background:transparent;color:#7E939F!important}

/* ----------------------------------------------------------- review form */
.fltl-review{
  margin-top:30px;
  background:var(--fl-navy2);
  border:1px solid var(--fl-line);
  border-radius:12px;
  padding:26px;
}
@media (max-width:767px){.fltl-review{padding:20px}}
.fltl-review__h{
  font-family:Manrope,system-ui,sans-serif;
  font-weight:700;
  font-size:24px;
  line-height:1.2;
  letter-spacing:-.6px;
  color:#fff;
  margin:0 0 10px;
}
.fltl-review__p{margin:0 0 20px;font-size:16px;line-height:1.62;max-width:62ch}

.fltl-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
@media (max-width:600px){.fltl-form__grid{grid-template-columns:minmax(0,1fr)}}
.fltl-form__row{margin:0 0 16px}
.fltl-form__row label{
  display:block;
  font-size:13px;
  font-weight:700;
  color:#C8D2D8;
  margin-bottom:6px;
}
.fltl textarea{resize:vertical}

/* Honeypot: off-screen rather than display:none, so bots still fill it. */
.fltl-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.fltl-submit{
  background:var(--fl-aqua);
  color:var(--fl-navy);
  border:0;
  border-radius:999px;
  font:inherit;
  font-weight:800;
  font-size:14px;
  padding:14px 22px;
  min-height:44px;
  cursor:pointer;
}
.fltl-submit:hover{background:#4FE0D4}
.fltl-submit[disabled]{opacity:.6;cursor:progress}
.fltl-form__submit{margin:4px 0 0}

.fltl-status{margin:14px 0 0;font-size:15px;line-height:1.6;color:var(--fl-muted)}
.fltl-status.is-error{color:#FFB4A8}
.fltl-status.is-ok{color:#fff;border-left:2px solid var(--fl-aqua);padding-left:14px}
.fltl-status:focus{outline:none}

@media (prefers-reduced-motion:reduce){
  .fltl *,.fltl *::before,.fltl *::after{transition:none!important;animation:none!important}
}

/* ------------------------------------- Field Report request form extras */
.fltl-request{max-width:none}
.fltl-check label{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:400;
  font-size:15px;
  color:var(--fl-body);
  cursor:pointer;
}
.fltl-check input[type="checkbox"]{
  /* 24px minimum: WCAG 2.2 target-size (minimum) is 24x24 CSS px, and a
     checkbox is not an inline-in-a-sentence link, so the exemption doesn't
     apply to it. */
  width:24px;height:24px;
  accent-color:var(--fl-aqua);
  flex:0 0 auto;
  margin:0;
}
#flowline-request .fltl-form__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:600px){#flowline-request .fltl-form__grid{grid-template-columns:minmax(0,1fr)}}
