*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  min-height:100dvh;
  padding:0 14px calc(40px + env(safe-area-inset-bottom));
}
.lf-page{max-width:var(--width);margin:0 auto;padding-top:26px}
.lf-card{border-radius:24px;overflow:hidden}
body.has-card .lf-card{background:var(--card-bg);box-shadow:0 14px 44px rgba(15,32,54,.12)}
.lf-cover{line-height:0}
.lf-cover img{width:100%;height:auto;display:block;max-height:340px;object-fit:cover}
.lf-inner{padding:26px 20px 30px;text-align:center}
.lf-inner.has-cover{padding-top:0}
.lf-avatar{width:104px;height:104px;object-fit:cover;display:block;margin:0 auto 12px;border:4px solid var(--card-bg);box-shadow:0 6px 16px rgba(15,32,54,.16)}
.lf-inner.has-cover .lf-avatar{margin-top:-56px;position:relative}
.lf-avatar-circle{border-radius:50%}
.lf-avatar-rounded{border-radius:20px}
.lf-avatar-square{border-radius:0}
.lf-title{font-family:var(--font-head);font-size:clamp(22px,5.4vw,28px);font-weight:700;letter-spacing:-.01em;margin:6px 0 4px}
.lf-bio{color:var(--muted);margin:0 auto 20px;max-width:38ch;font-size:15px}
.lf-block{margin:0 0 12px}
.lf-block:last-child{margin-bottom:0}

/* buttons */
.lf-btn{
  display:flex;align-items:center;gap:12px;width:100%;
  padding:15px 16px;border:0;cursor:pointer;
  border-radius:var(--radius);
  background:var(--btn-bg);color:var(--btn-text);
  font-family:var(--font-head);font-size:16px;font-weight:600;
  text-decoration:none;text-align:left;
  box-shadow:var(--shadow);
  transition:transform .12s ease, filter .12s ease, box-shadow .12s ease;
}
.lf-btn:hover{transform:translateY(-2px);filter:brightness(1.06)}
.lf-btn:active{transform:translateY(0)}
.lf-btn:focus-visible{outline:3px solid var(--btn-bg);outline-offset:3px}
.lf-btn-outline{background:transparent;color:var(--btn-bg);box-shadow:inset 0 0 0 2px var(--btn-bg)}
.lf-btn-soft{background:color-mix(in srgb, var(--btn-bg) 14%, #fff);color:var(--btn-bg);box-shadow:none}
.lf-btn-custom{background:var(--b-bg);color:var(--b-fg)}
.lf-btn-label{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lf-btn-title{display:block;overflow:hidden;text-overflow:ellipsis}
.lf-btn-sub{font-size:13px;font-weight:400;opacity:.78}
.lf-btn-icon{font-size:20px;line-height:1;flex:0 0 auto}
.lf-btn-thumb{width:44px;height:44px;border-radius:calc(var(--radius) - 6px);object-fit:cover;flex:0 0 auto;margin:-4px 0}
.lf-btn-chev{opacity:.5;font-size:24px;line-height:1;flex:0 0 auto}
.lf-btn-submit{justify-content:center;text-align:center}
.lf-btn-submit .lf-btn-chev{display:none}

/* headings + text */
.lf-head{font-family:var(--font-head);font-weight:700;letter-spacing:.02em;margin:22px 0 12px;color:var(--text)}
.lf-head-sm{font-size:15px;text-transform:uppercase;letter-spacing:.12em;opacity:.75}
.lf-head-md{font-size:21px}
.lf-head-lg{font-size:27px}
.lf-text{color:var(--muted);margin:4px 0 12px}
.lf-text-sm{font-size:14px}
.lf-cap{font-size:13px;color:var(--muted);margin-top:8px;text-align:center}

/* image */
.lf-img{margin:0}
.lf-img img{width:100%;height:auto;display:block}

/* socials */
.lf-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:6px 0 14px}
.lf-soc{width:var(--s);height:var(--s);display:grid;place-items:center;border-radius:50%;background:var(--c);color:#fff;text-decoration:none;box-shadow:var(--shadow);transition:transform .12s ease}
.lf-socials-square .lf-soc{border-radius:calc(var(--radius) - 4px)}
.lf-soc:hover{transform:translateY(-2px) scale(1.04)}
.lf-soc:focus-visible{outline:3px solid var(--c);outline-offset:3px}

/* category rows */
.lf-cats{display:flex;flex-direction:column;gap:10px}
.lf-cat{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--radius);background:var(--btn-bg);color:var(--btn-text);text-decoration:none;box-shadow:var(--shadow);transition:transform .12s ease}
.lf-cat:hover{transform:translateY(-2px)}
.lf-cat-ico{font-size:22px;line-height:1}
.lf-cat-txt{flex:1;min-width:0;text-align:left;display:flex;flex-direction:column}
.lf-cat-title{font-family:var(--font-head);font-weight:600}
.lf-cat-sub{font-size:13px;opacity:.75}
.lf-cat-chev{font-size:24px;opacity:.5}

/* video + embed */
.lf-video{position:relative;padding-top:56.25%;border-radius:var(--radius);overflow:hidden;background:#000}
.lf-video iframe,.lf-video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.lf-embed{border-radius:var(--radius);overflow:hidden}
.lf-embed iframe{max-width:100%;border:0}

/* dividers */
.lf-div-line{height:1px;background:currentColor;opacity:.16;margin:18px 0}
.lf-div-dots{height:6px;margin:18px auto;width:64px;background-image:radial-gradient(currentColor 2px, transparent 2px);background-size:16px 6px;opacity:.35}
.lf-div-blank{height:18px}

/* form */
.lf-form{display:flex;flex-direction:column;gap:10px;text-align:left}
.lf-form input,.lf-form textarea{
  width:100%;padding:13px 14px;border-radius:calc(var(--radius) - 2px);
  border:1.5px solid color-mix(in srgb, var(--muted) 40%, transparent);
  background:#fff;color:#16273d;font:inherit;font-size:15px;
}
.lf-form input:focus,.lf-form textarea:focus{outline:none;border-color:var(--btn-bg);box-shadow:0 0 0 3px color-mix(in srgb, var(--btn-bg) 20%, transparent)}
.lf-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}
.lf-ok{background:color-mix(in srgb, var(--btn-bg) 12%, #fff);color:var(--btn-bg);padding:16px;border-radius:var(--radius);font-weight:600}

@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
  .lf-btn:hover,.lf-cat:hover,.lf-soc:hover{transform:none}
}

/* image spacing */
.lf-img-sp-none{margin:0}
.lf-img-sp-tight{margin:4px 0}
.lf-img-sp-normal{margin:0}
.lf-img-sp-loose{margin:22px 0}
.lf-block-image{margin-bottom:12px}
.lf-img-sp-none.lf-img{margin:0}
.lf-img-fw{margin-left:-20px;margin-right:-20px}
.lf-img-fw img{border-radius:0!important;width:calc(100% + 0px)}
body.boxed .lf-img-fw{margin-left:-16px;margin-right:-16px}

/* each block in its own card */
body.boxed .lf-card{background:transparent;box-shadow:none}
body.boxed .lf-inner{padding:0}
body.boxed .lf-idcard{background:var(--card-bg);border-radius:22px;padding:22px 18px;margin-bottom:12px;box-shadow:0 8px 24px rgba(15,32,54,.10)}
body.boxed .lf-idcard .lf-bio{margin-bottom:0}
body.boxed .lf-block{background:var(--card-bg);border-radius:22px;padding:16px;box-shadow:0 8px 24px rgba(15,32,54,.10);margin-bottom:12px}
body.boxed .lf-block-spacer,body.boxed .lf-block-divider{background:transparent;box-shadow:none;padding:0}
body.boxed .lf-head{margin-top:0}
body.boxed .lf-inner.has-cover .lf-avatar{margin-top:-56px}

/* flat social icons */
.lf-socials-flat{gap:18px}
.lf-socials-flat .lf-soc{background:transparent;color:var(--c);box-shadow:none;width:auto;height:auto}
.lf-socials-flat .lf-soc:hover{transform:translateY(-2px) scale(1.06)}

/* category row styles */
.lf-cats-outline .lf-cat{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1.6px var(--btn-bg)}
.lf-cats-outline .lf-cat .lf-cat-sub{opacity:.7}
.lf-cats-plain .lf-cat{background:transparent;color:var(--text);box-shadow:none;padding-left:0;padding-right:0;border-bottom:1px solid color-mix(in srgb,var(--muted) 30%,transparent);border-radius:0}
.lf-cat-ico{display:inline-flex;align-items:center}
.lf-lineicon{display:block}

/* tick list */
.lf-checks{list-style:none;margin:6px 0 14px;padding:0;display:flex;flex-direction:column;gap:14px;text-align:left}
.lf-checks li{display:flex;align-items:flex-start;gap:12px;color:var(--text)}
.lf-checks svg{flex:0 0 auto;color:var(--btn-bg);margin-top:1px}
.lf-checks span{font-size:15px;line-height:1.45}
body.boxed .lf-checks{margin:0}
