/* LineaBlu Digital Business Card — shared stylesheet
   Loaded once site-wide by the plugin. All selectors are prefixed with
   lb- (matching the rest of the site's CSS convention) and scoped under
   .lb-card-outer so this can never bleed into other theme/page styling. */

.lb-card-outer{
  --lb-ink:#1B1230;
  --lb-plum:#3D2466;
  --lb-plum-2:#2A1850;
  --lb-teal:#1FAFA0;
  --lb-teal-dark:#168A7F;
  --lb-paper:#FAF8FC;
  --lb-slate:#3A3450;
  --lb-slate-soft:#736C87;
  --lb-hairline:#E4DFEC;
  font-family:'Work Sans',system-ui,sans-serif;
  color:var(--lb-slate);
  display:flex;
  justify-content:center;
  padding:28px 12px;
  -webkit-text-size-adjust:100%;
}
.lb-card-outer,
.lb-card-outer *{ box-sizing:border-box; }

.lb-card{
  width:100%;
  max-width:430px;
  background:var(--lb-paper);
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
  border-radius:28px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.35);
}

/* ---------- Hero ---------- */
.lb-hero{
  background:
    radial-gradient(120% 90% at 18% -10%, var(--lb-plum) 0%, transparent 55%),
    linear-gradient(165deg, var(--lb-plum) 0%, var(--lb-ink) 75%);
  padding:48px 28px 36px;
  text-align:center;
  color:#fff;
  position:relative;
}
.lb-hero::after{
  content:"";
  position:absolute;
  inset:auto 0 -1px 0;
  height:36px;
  background:var(--lb-paper);
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
}
.lb-seal{
  width:104px;height:104px;
  margin:0 auto 22px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 32% 28%, #5B3A8C 0%, #2A1850 70%);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:
    0 0 0 6px rgba(255,255,255,.05),
    0 0 0 7px rgba(255,255,255,.12),
    0 14px 30px -10px rgba(0,0,0,.6);
  position:relative;
  opacity:0;
  transform:translateY(8px);
  animation:lb-rise .7s cubic-bezier(.2,.7,.2,1) .05s forwards;
}
.lb-seal::before{
  content:"";
  position:absolute;
  inset:9px;
  border-radius:50%;
  border:1px solid rgba(31,175,160,.55);
}
.lb-seal span{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:34px;
  letter-spacing:1px;
  color:#fff;
}
.lb-name{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:30px;
  line-height:1.15;
  margin:0 0 10px;
  letter-spacing:.2px;
  color:#fff !important;
  opacity:0;
  transform:translateY(8px);
  animation:lb-rise .7s cubic-bezier(.2,.7,.2,1) .15s forwards;
}
.lb-role{
  opacity:0;
  transform:translateY(8px);
  animation:lb-rise .7s cubic-bezier(.2,.7,.2,1) .25s forwards;
}
.lb-role-title{
  display:block;
  font-size:13px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--lb-teal);
  margin-bottom:4px;
}
.lb-role-dept{
  display:block;
  font-size:14px;
  color:rgba(255,255,255,.7);
}
@keyframes lb-rise{to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){
  .lb-seal,.lb-name,.lb-role{animation:none;opacity:1;transform:none;}
}

/* ---------- Quick actions ---------- */
.lb-actions{
  display:flex;
  gap:10px;
  padding:22px 24px 6px;
}
.lb-action{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  padding:14px 4px 12px;
  border-radius:16px;
  background:#fff;
  border:1px solid var(--lb-hairline);
  color:var(--lb-ink);
  text-decoration:none;
  font-size:12px;
  font-weight:600;
  transition:transform .15s ease, box-shadow .15s ease;
}
.lb-action:active{transform:scale(.96);}
.lb-action svg{width:20px;height:20px;}
.lb-action-icon{
  width:38px;height:38px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(31,175,160,.12);
  color:var(--lb-teal-dark);
}

/* ---------- Save CTA ---------- */
.lb-save-wrap{padding:14px 24px 6px;}
.lb-save-btn{
  width:100%;
  border:none;
  cursor:pointer;
  background:linear-gradient(135deg, var(--lb-teal) 0%, var(--lb-teal-dark) 100%);
  color:#fff;
  font-family:inherit;
  font-weight:700;
  font-size:15px;
  letter-spacing:.01em;
  padding:16px 0;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 10px 24px -8px rgba(31,175,160,.55);
  transition:transform .15s ease;
}
.lb-save-btn:active{transform:scale(.98);}
.lb-save-btn svg{width:18px;height:18px;}
.lb-save-note{
  text-align:center;
  font-size:11px;
  color:var(--lb-slate-soft);
  margin:8px 0 0;
}

/* ---------- Details ---------- */
.lb-details{
  margin:18px 24px 0;
  background:#fff;
  border:1px solid var(--lb-hairline);
  border-radius:16px;
  overflow:hidden;
}
.lb-detail-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  padding:13px 18px;
  border-bottom:1px solid var(--lb-hairline);
  font-size:14px;
}
.lb-detail-row:last-child{border-bottom:none;}
.lb-detail-label{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--lb-slate-soft);
  white-space:nowrap;
}
.lb-detail-value{
  text-align:right;
  color:var(--lb-ink);
  font-weight:500;
  text-decoration:none;
}

/* ---------- QR ---------- */
.lb-qr-section{
  margin:22px 24px 0;
  background:#fff;
  border:1px solid var(--lb-hairline);
  border-radius:16px;
  padding:22px 18px 18px;
  text-align:center;
}
.lb-qr-holder{
  width:148px;height:148px;
  margin:0 auto 12px;
  display:flex;align-items:center;justify-content:center;
}
.lb-qr-holder svg{width:100%;height:100%;}
.lb-qr-caption{
  font-size:12px;
  font-weight:600;
  color:var(--lb-ink);
  margin:0 0 2px;
}
.lb-qr-sub{
  font-size:11px;
  color:var(--lb-slate-soft);
  margin:0;
}

/* ---------- Footer ---------- */
.lb-footer{
  margin-top:auto;
  padding:28px 24px 34px;
  text-align:center;
}
.lb-footer-firm{
  font-family:'Fraunces',serif;
  font-size:16px;
  font-weight:600;
  color:var(--lb-ink);
  margin:0 0 4px;
}
.lb-footer-tagline{
  font-size:11.5px;
  color:var(--lb-slate-soft);
  margin:0 0 10px;
}
.lb-footer-tagline:empty{display:none;}
.lb-footer-link{
  font-size:12px;
  color:var(--lb-teal-dark);
  text-decoration:none;
  font-weight:600;
}

.lb-card-outer :focus-visible{outline:2px solid var(--lb-teal);outline-offset:2px;}
