/* The Mindfulness Place - 30-Day Trial expression of interest.
   Self-contained modal. Drop in anywhere: it reads whichever accent token the
   host page defines (--accent on the sport and life pages, --sport on the
   education packages page) and falls back to the sport green if neither exists.
   Every class is prefixed .mfsf so nothing here can collide with a host page. */

.mfsf{
  --mfsf-accent:var(--accent, var(--sport, #0F5C4E));
  --mfsf-ink:var(--text, var(--ink, #1A1A18));
  --mfsf-mid:var(--text-muted, var(--mid, #6B6B62));
  --mfsf-rule:var(--border, var(--rule, #D4D0C8));
  --mfsf-cream:var(--bg, var(--cream, #F2F0EB));
  --mfsf-serif:var(--serif, Cormorant, Georgia, serif);
  --mfsf-sans:var(--sans, Outfit, system-ui, sans-serif);
  --mfsf-mono:var(--mono, ui-monospace, monospace);

  position:fixed; inset:0; z-index:9000;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  font-family:var(--mfsf-sans); color:var(--mfsf-ink);
  line-height:1.7;
}
.mfsf[hidden]{display:none}
.mfsf *{box-sizing:border-box}

.mfsf__back{position:absolute;inset:0;background:rgba(26,26,24,.58);animation:mfsf-fade .2s ease}
@keyframes mfsf-fade{from{opacity:0}to{opacity:1}}

.mfsf__box{
  position:relative; display:flex; flex-direction:column;
  width:100%; max-width:720px; max-height:90vh;
  background:#fff; border-radius:4px;
  box-shadow:0 24px 70px rgba(26,26,24,.28);
  animation:mfsf-rise .24s cubic-bezier(.2,.7,.3,1);
}
@keyframes mfsf-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------------- header ---------------- */
.mfsf__hd{padding:32px 40px 0;flex:none}
.mfsf__eyebrow{
  font-family:var(--mfsf-mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mfsf-accent);margin:0 0 10px;
}
.mfsf__title{
  margin:0;font-family:var(--mfsf-serif);font-weight:500;
  font-size:32px;line-height:1.12;letter-spacing:-.01em;
}
.mfsf__x{
  position:absolute;top:14px;right:16px;width:36px;height:36px;
  font-size:26px;line-height:1;background:none;border:0;border-radius:50%;
  cursor:pointer;color:var(--mfsf-mid);transition:background .15s,color .15s;
}
.mfsf__x:hover{background:var(--mfsf-cream);color:var(--mfsf-ink)}

/* ---------------- progress ---------------- */
.mfsf__prog{margin:22px 0 0;flex:none}
.mfsf__steps{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.mfsf__step{flex:1;min-width:0}
.mfsf__step b{
  display:block;height:3px;border-radius:2px;
  background:var(--mfsf-rule);transition:background .25s;
}
.mfsf__step--done b,.mfsf__step--now b{background:var(--mfsf-accent)}
.mfsf__step span{
  display:block;margin-top:9px;
  font-family:var(--mfsf-mono);font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--mfsf-mid);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mfsf__step--now span{color:var(--mfsf-ink)}
@media (max-width:620px){.mfsf__step span{display:none}.mfsf__step--now span{display:block}}

/* ---------------- scrolling body ---------------- */
.mfsf__body{padding:30px 40px 34px;overflow-y:auto;flex:1 1 auto}
.mfsf__intro{
  margin:0 0 30px;color:var(--mfsf-mid);font-size:15.5px;
  max-width:62ch;text-wrap:pretty;
}
.mfsf__grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
@media (max-width:620px){.mfsf__grid{grid-template-columns:1fr}}
.mfsf__f{min-width:0}
.mfsf__f--full{grid-column:1/-1}

.mfsf__l{
  display:block;margin:0 0 8px;
  font-family:var(--mfsf-mono);font-size:11px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--mfsf-ink);
}
.mfsf__opt{color:var(--mfsf-mid);letter-spacing:.08em}
.mfsf__hint{
  display:block;margin:0 0 10px;font-size:13.5px;line-height:1.6;
  color:var(--mfsf-mid);text-transform:none;letter-spacing:0;
  font-family:var(--mfsf-sans);
}
.mfsf__in{
  width:100%;font-family:var(--mfsf-sans);font-size:15.5px;color:var(--mfsf-ink);
  background:var(--mfsf-cream);border:1px solid transparent;border-radius:3px;
  padding:13px 15px;transition:border-color .15s,background .15s;
}
.mfsf__in:focus{outline:none;background:#fff;border-color:var(--mfsf-accent)}
.mfsf__in::placeholder{color:var(--mfsf-mid);opacity:.65}
textarea.mfsf__in{min-height:96px;resize:vertical;line-height:1.6}

/* radios, drawn as selectable chips */
.mfsf__opts{display:flex;flex-wrap:wrap;gap:8px}
.mfsf__chip{position:relative}
.mfsf__chip input{position:absolute;opacity:0;width:0;height:0}
.mfsf__chip span{
  display:block;cursor:pointer;
  font-size:14.5px;line-height:1.3;padding:10px 16px;
  background:var(--mfsf-cream);border:1px solid transparent;border-radius:3px;
  transition:border-color .15s,color .15s,background .15s;
}
.mfsf__chip input:checked+span{
  border-color:var(--mfsf-accent);color:var(--mfsf-accent);background:#fff;
  box-shadow:inset 0 0 0 1px var(--mfsf-accent);
}
.mfsf__chip input:focus-visible+span{outline:2px solid var(--mfsf-accent);outline-offset:2px}

.mfsf__f--err .mfsf__in{border-color:#B4462E;background:#fff}
.mfsf__err{display:none;margin-top:7px;font-size:13px;color:#B4462E}
.mfsf__f--err .mfsf__err{display:block}

/* honeypot: off screen for people, fillable for bots */
.mfsf__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------------- review step ---------------- */
.mfsf__revgrp{margin:0 0 26px}
.mfsf__revgrp h4{
  margin:0 0 12px;font-family:var(--mfsf-mono);font-size:11px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--mfsf-accent);
  font-weight:500;
}
.mfsf__rev dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
  gap:9px 20px;margin:0;font-size:14.5px}
.mfsf__rev dt{color:var(--mfsf-mid)}
.mfsf__rev dd{margin:0;text-wrap:pretty}
.mfsf__blank{color:var(--mfsf-rule)}
.mfsf__edit{
  font-family:var(--mfsf-mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;background:none;border:0;padding:0;margin-left:10px;
  color:var(--mfsf-accent);cursor:pointer;text-decoration:underline;
}

/* ---------------- footer ---------------- */
.mfsf__ft{
  flex:none;display:flex;align-items:center;gap:14px;
  padding:20px 40px;border-top:1px solid var(--mfsf-rule);background:#fff;
  border-radius:0 0 4px 4px;
}
.mfsf__count{
  font-family:var(--mfsf-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--mfsf-mid);margin-right:auto;
}
.mfsf__btn{
  font-family:var(--mfsf-sans);font-size:14.5px;font-weight:500;
  padding:13px 26px;border-radius:100px;border:0;cursor:pointer;
  background:var(--mfsf-accent);color:#fff;transition:opacity .15s,transform .15s;
}
.mfsf__btn:hover{opacity:.88}
.mfsf__btn:active{transform:translateY(1px)}
.mfsf__btn[disabled]{opacity:.5;cursor:default;transform:none}
.mfsf__btn--ghost{background:none;color:var(--mfsf-mid);padding:13px 8px}
.mfsf__btn--ghost:hover{color:var(--mfsf-ink);opacity:1}

/* ---------------- done ---------------- */
.mfsf__done{padding:64px 40px 68px;text-align:center}
.mfsf__tick{
  width:54px;height:54px;margin:0 auto 26px;border-radius:50%;
  background:var(--mfsf-accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:26px;
}
.mfsf__done h3{margin:0 0 14px;font-family:var(--mfsf-serif);font-weight:500;font-size:30px;line-height:1.15}
.mfsf__done p{margin:0 auto;max-width:44ch;color:var(--mfsf-mid);font-size:15.5px}

.mfsf__note{
  margin:26px 0 0;padding-top:20px;border-top:1px solid var(--mfsf-rule);
  font-size:13px;line-height:1.65;color:var(--mfsf-mid);text-wrap:pretty;
}

@media (max-width:620px){
  .mfsf{padding:0}
  .mfsf__box{max-height:100vh;height:100%;border-radius:0}
  .mfsf__hd{padding:26px 22px 0}
  .mfsf__title{font-size:26px}
  .mfsf__body{padding:26px 22px 30px}
  .mfsf__ft{padding:16px 22px}
  .mfsf__rev dl{grid-template-columns:1fr;gap:2px 0}
  .mfsf__rev dd{margin-bottom:10px}
}
