/**
 * Template 1B — hero only (cover band + logo disc + profile text).
 * Scoped to .pub-card--template-01b / .bc-t-template-01b so Template 1 is unchanged.
 */

.pub-card.pub-card--template-01b,
.bc-card.bc-t-template-01b {
  border-radius: 0;
  border: none;
  box-shadow: none;
  background: transparent;
  overflow: visible;
}

.pub-card--template-01b,
.bc-card.bc-t-template-01b {
  --tpl-radius-xl: 32px;
  --tpl-font: var(--tpl-font-contact, var(--tpl-font-personal, "Montserrat", "Segoe UI", system-ui, sans-serif));
  --tpl-text: #333333;
  --tpl-muted: #666666;
  --tpl-line: rgba(15, 23, 42, 0.1);
  --tpl-surface: #ffffff;
  --tpl-canvas: #f1f5f9;
  --tpl-t01b-bar-width: 68%;
  --tpl-t01b-bar-height: 55%;
  --tpl-t01b-banner: #3c3e41;
  --tpl-t01b-banner-ink: #ffffff;
  /* Header bar text (set on preview wrap for light vs dark card backgrounds) */
  --tpl-t01b-bar-ink: #0f172a;
  --tpl-t01b-bar-muted: #64748b;
  --tpl-t01b-gold: #b89851;
  --tpl-t01b-maroon: #4a1418;
  --tpl-t01b-company-size: max(1rem, calc((var(--tpl-identity-name-size, 1.33rem) + var(--tpl-identity-sub-size, 1.05rem)) / 2));
  /* ~50% of profile disc on cover, ~50% on bar (Facebook-style seam) */
  --tpl-t01b-logo-overlap: 0.5;
  font-family: var(--tpl-font);
  color: var(--tpl-text);
  box-sizing: border-box;
}

.pub-card--template-01b .tpl-preview-wrap,
.bc-card.bc-t-template-01b .tpl-preview-wrap {
  width: 100%;
  max-width: min(100%, 480px);
  margin: 0 auto;
  box-sizing: border-box;
}

.pub-card--template-01b .tpl-card-shell,
.bc-card.bc-t-template-01b .tpl-card-shell {
  position: relative;
  display: block;
  width: 100%;
  border-radius: 0;
  overflow: visible;
  border: 1px solid var(--tpl-line);
  box-shadow: 0 4px 24px rgba(15, 23, 42, 0.07), 0 32px 64px rgba(15, 23, 42, 0.05);
  background: var(--tpl-surface);
}

.pub-card--template-01b .tpl-surface,
.bc-card.bc-t-template-01b .tpl-surface {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--tpl-surface);
}

.pub-card--template-01b .tpl-identity-stack,
.bc-card.bc-t-template-01b .tpl-identity-stack {
  padding: clamp(1.15rem, 4vw, 2rem);
  padding-top: clamp(1.35rem, 4vw, 1.85rem);
  display: flex;
  flex-direction: column;
  gap: clamp(1.35rem, 3vw, 2.25rem);
}

/* ----- Hero: photo + grey strip + logo circle (Template 2 / 1B) ----- */
@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@700&family=Montserrat:wght@400;500;700;800&family=Playfair+Display:ital,wght@0,600;1,500;1,600&display=swap");

/* Template 2 header — Facebook-style: cover banner + profile disc (~35% overlap) + text left of disc */
.pub-card--template-01b .tpl-t01b-hero,
.bc-card.bc-t-template-01b .tpl-t01b-hero {
  position: relative;
  width: 100%;
  background: var(--tpl-surface, #ffffff);
  overflow: visible;
  padding-bottom: 0;
}

.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle),
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) {
  /* Logo inset + ring scaled ~17.5% (15–20% more right + larger) */
  --tpl-t01b-logo-inset: clamp(1.75rem, 6.45vw, 2.78rem);
  --tpl-t01b-logo-ring: clamp(9.82rem, 36.3vw, 14.08rem);
  --tpl-t01b-text-gutter: clamp(0.65rem, 2.5vw, 1rem);
  /* Alias shared client-approved identity scale (bc-tri-core.css) */
  --tpl-t01b-sec-ref: var(--tpl-identity-sec-ref, var(--tpl-heading-size, 0.9375rem));
  --tpl-t01b-name-size: var(--tpl-identity-name-size, max(1.22rem, 1.33rem));
  --tpl-t01b-sub-size: var(--tpl-identity-sub-size, max(1.02rem, 1.05rem));
  --tpl-t01b-company-size: max(0.72rem, calc(var(--tpl-t01b-name-size) * 0.62));
  margin-bottom: 0;
}

.pub-card--template-01b .tpl-t01b-hero__canvas,
.bc-card.bc-t-template-01b .tpl-t01b-hero__canvas {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: stretch;
  width: 100%;
  overflow: visible;
}

.pub-card--template-01b .tpl-t01b-photo-bg,
.bc-card.bc-t-template-01b .tpl-t01b-photo-bg {
  position: relative;
  grid-row: 1;
  grid-column: 1;
  z-index: 1;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #0a0a0a;
  aspect-ratio: 1000 / 380;
  min-height: clamp(108px, 30vw, 168px);
  max-height: min(46vw, 220px);
  overflow: hidden;
  background: #c5c9ce;
}

.pub-card--template-01b .tpl-t01b-photo-bg:has(.tpl-t01b-photo-bg__img)::after,
.bc-card.bc-t-template-01b .tpl-t01b-photo-bg:has(.tpl-t01b-photo-bg__img)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.12));
  pointer-events: none;
  z-index: 1;
}

.pub-card--template-01b .tpl-t01b-photo-bg--placeholder,
.bc-card.bc-t-template-01b .tpl-t01b-photo-bg--placeholder {
  background:
    linear-gradient(rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.12)),
    linear-gradient(135deg, #6b7280 0%, #9ca3af 45%, #4b5563 100%);
}

.pub-card--template-01b .tpl-t01b-photo-bg--empty,
.bc-card.bc-t-template-01b .tpl-t01b-photo-bg--empty {
  background: linear-gradient(180deg, #e5e7eb 0%, #d1d5db 100%);
}

.pub-card--template-01b .tpl-t01b-photo-bg__img,
.bc-card.bc-t-template-01b .tpl-t01b-photo-bg__img {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

.pub-card--template-01b .tpl-t01b-photo-bg__ph,
.bc-card.bc-t-template-01b .tpl-t01b-photo-bg__ph {
  display: block;
  width: 100%;
  height: 100%;
}

.pub-card--template-01b .tpl-t01b-grey-bar,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar {
  position: relative;
  grid-row: 2;
  grid-column: 1;
  z-index: 2;
  width: 100%;
  min-height: clamp(3.75rem, 15vw, 5.5rem);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
  padding: clamp(0.55rem, 2.2vw, 0.85rem) clamp(0.65rem, 2.5vw, 1rem);
  box-sizing: border-box;
  background-color: var(--tpl-surface, #ffffff);
  color: var(--tpl-t01b-bar-ink, var(--tpl-text, #0f172a));
  border-top: none;
}

.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: stretch;
  align-items: center;
  text-align: center;
  /* Left: clear the logo disc; right: normal gutter only (do not reserve logo width twice) */
  padding-left: calc(
    var(--tpl-t01b-logo-inset) + var(--tpl-t01b-logo-ring) + var(--tpl-t01b-text-gutter)
  );
  padding-right: clamp(0.65rem, 2.5vw, 1rem);
  padding-top: clamp(0.28rem, 1.1vw, 0.45rem);
  padding-bottom: 0;
  min-height: max(
    clamp(2.85rem, 12vw, 4rem),
    calc(var(--tpl-t01b-logo-ring) * (1 - var(--tpl-t01b-logo-overlap, 0.5)) + 0.12rem)
  );
}

.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar {
  container-type: inline-size;
}

.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-info,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-info {
  grid-column: 1;
  width: 100%;
  max-width: none;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-top: clamp(0.15rem, 0.5vw, 0.28rem);
}

.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__name,
.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__role,
.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__company,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__name,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__role,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__company {
  display: block;
  width: 100%;
  max-width: none;
  text-align: center !important;
  color: var(--tpl-t01b-bar-ink, #0f172a) !important;
  padding-right: 0;
  margin-right: 0;
  box-sizing: border-box;
}

.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__role,
.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__company,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__role,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-grey-bar .tpl-t01b-banner__company {
  color: var(--tpl-t01b-bar-muted, var(--tpl-muted, #64748b)) !important;
  opacity: 1 !important;
}

.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-banner__name-row,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-banner__name-row {
  justify-content: center;
  width: 100%;
}

/* Profile disc — half on cover / half on bar (client spec) */
.pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-logo-circle,
.bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) .tpl-t01b-logo-circle {
  grid-row: 1;
  align-self: end;
  margin-bottom: calc(var(--tpl-t01b-logo-ring) * var(--tpl-t01b-logo-overlap, 0.5) * -1);
}

.pub-card--template-01b .tpl-t01b-hero:not(:has(.tpl-t01b-logo-circle)) .tpl-t01b-grey-bar,
.bc-card.bc-t-template-01b .tpl-t01b-hero:not(:has(.tpl-t01b-logo-circle)) .tpl-t01b-grey-bar {
  justify-content: center;
  text-align: center;
}

.pub-card--template-01b .tpl-t01b-info,
.bc-card.bc-t-template-01b .tpl-t01b-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(0.2rem, 0.9vw, 0.38rem);
  min-width: 0;
  width: 100%;
  max-width: 100%;
  text-align: left;
}

.pub-card--template-01b .tpl-t01b-info [data-personal-line="name"],
.pub-card--template-01b .tpl-t01b-info [data-personal-line="title"],
.pub-card--template-01b .tpl-t01b-info [data-personal-line="company"],
.bc-card.bc-t-template-01b .tpl-t01b-info [data-personal-line="name"],
.bc-card.bc-t-template-01b .tpl-t01b-info [data-personal-line="title"],
.bc-card.bc-t-template-01b .tpl-t01b-info [data-personal-line="company"],
.pub-card--template-01b .tpl-t01b-info .tpl-t01b-banner__name,
.pub-card--template-01b .tpl-t01b-info .tpl-t01b-banner__role,
.pub-card--template-01b .tpl-t01b-info .tpl-t01b-banner__company,
.bc-card.bc-t-template-01b .tpl-t01b-info .tpl-t01b-banner__name,
.bc-card.bc-t-template-01b .tpl-t01b-info .tpl-t01b-banner__role,
.bc-card.bc-t-template-01b .tpl-t01b-info .tpl-t01b-banner__company {
  overflow-wrap: normal;
  word-break: normal;
}

.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__name,
.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__role,
.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__company,
.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__role--inline,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__name,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__role,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__company,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__role--inline,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__sep {
  margin: 0;
  color: var(--tpl-t01b-bar-ink, var(--tpl-text, #0f172a)) !important;
  text-transform: uppercase;
  font-family: var(--tpl-font-personal, Montserrat, var(--tpl-font));
  line-height: 1;
}

.pub-card--template-01b .tpl-t01b-banner__name,
.bc-card.bc-t-template-01b .tpl-t01b-banner__name {
  display: block;
  width: 100%;
  font-size: var(--tpl-t01b-name-size, max(1.22rem, 1.33rem));
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.14;
  margin-top: clamp(0.35rem, 1vw, 0.5rem);
}

.pub-card--template-01b .tpl-t01b-banner__role,
.bc-card.bc-t-template-01b .tpl-t01b-banner__role {
  display: block;
  width: 100%;
  font-size: var(--tpl-t01b-sub-size, max(1.02rem, 1.05rem));
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.22;
  margin-top: clamp(0.35rem, 1vw, 0.5rem);
}

.pub-card--template-01b .tpl-t01b-banner__company,
.bc-card.bc-t-template-01b .tpl-t01b-banner__company {
  display: block;
  width: 100%;
  font-size: var(--tpl-t01b-company-size, max(1rem, 1.12rem));
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.1;
  margin: 0;
  opacity: 1;
}

/* Grey-bar identity: name/title may wrap; company stays one line (smaller middle size) */
.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__name,
.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__role,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__name,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__role {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__name,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__name {
  font-size: var(--tpl-t01b-name-size, max(1.22rem, 1.33rem)) !important;
}

.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__role,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__role {
  font-size: var(--tpl-t01b-sub-size, max(1.02rem, 1.05rem)) !important;
}

.pub-card--template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__company,
.bc-card.bc-t-template-01b .tpl-t01b-grey-bar .tpl-t01b-banner__company {
  font-size: clamp(0.78rem, 3vw, var(--tpl-t01b-company-size, 1.12rem)) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 100%;
  line-height: 1.1;
  letter-spacing: 0.035em;
}

.pub-card--template-01b .tpl-t01b-banner__name--ph,
.pub-card--template-01b .tpl-t01b-banner__role--ph,
.pub-card--template-01b .tpl-t01b-banner__company--ph,
.bc-card.bc-t-template-01b .tpl-t01b-banner__name--ph,
.bc-card.bc-t-template-01b .tpl-t01b-banner__role--ph,
.bc-card.bc-t-template-01b .tpl-t01b-banner__company--ph {
  opacity: 0.45;
}

.pub-card--template-01b .tpl-t01b-logo-circle,
.bc-card.bc-t-template-01b .tpl-t01b-logo-circle {
  position: relative;
  grid-row: 1;
  grid-column: 1;
  justify-self: start;
  align-self: end;
  z-index: 10;
  margin: 0 0 calc(var(--tpl-t01b-logo-ring) * var(--tpl-t01b-logo-overlap, 0.5) * -1) var(--tpl-t01b-logo-inset, clamp(0.65rem, 2.8vw, 1.35rem));
  width: var(--tpl-t01b-logo-ring);
  height: var(--tpl-t01b-logo-ring);
  max-width: min(var(--tpl-t01b-logo-ring), calc(100% - 1.25rem));
  aspect-ratio: 1;
  border-radius: 50%;
  background: #ffffff;
  border: 4px solid #0a0a0a;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(0.5rem, 1.5vw, 0.85rem);
  text-align: center;
  box-sizing: border-box;
  overflow: hidden;
}

.pub-card--template-01b .tpl-t01b-logo__graphic,
.bc-card.bc-t-template-01b .tpl-t01b-logo__graphic {
  width: clamp(5.5rem, 48%, 9.7rem);
  height: auto;
  max-height: 42%;
  margin-top: 0.15rem;
  flex-shrink: 0;
  display: block;
}

/* Guide / text-in-circle mode only (not user-uploaded image) */
.pub-card--template-01b .tpl-t01b-logo-circle:not(.tpl-t01b-logo-circle--image-only) .tpl-t01b-logo__img,
.bc-card.bc-t-template-01b .tpl-t01b-logo-circle:not(.tpl-t01b-logo-circle--image-only) .tpl-t01b-logo__img {
  width: clamp(4.5rem, 42%, 8rem);
  height: auto;
  max-height: 38%;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
}

.pub-card--template-01b .tpl-t01b-logo-circle:not(.tpl-t01b-logo-circle--image-only) .tpl-t01b-logo__img--face,
.bc-card.bc-t-template-01b .tpl-t01b-logo-circle:not(.tpl-t01b-logo-circle--image-only) .tpl-t01b-logo__img--face {
  width: 72%;
  height: 72%;
  max-height: none;
  border-radius: 50%;
  object-fit: cover;
}

/* Uploaded image only — photo fills disc edge-to-edge (no inner white band) */
.pub-card--template-01b .tpl-t01b-logo-circle--image-only,
.bc-card.bc-t-template-01b .tpl-t01b-logo-circle--image-only {
  display: block;
  padding: 0;
  line-height: 0;
  overflow: hidden;
}

.pub-card--template-01b .tpl-t01b-logo-circle--image-only .tpl-t01b-logo__img,
.bc-card.bc-t-template-01b .tpl-t01b-logo-circle--image-only .tpl-t01b-logo__img,
.pub-card--template-01b .tpl-t01b-logo-circle--image-only .tpl-t01b-logo__img--face,
.bc-card.bc-t-template-01b .tpl-t01b-logo-circle--image-only .tpl-t01b-logo__img--face,
.pub-card--template-01b .tpl-t01b-logo-circle--image-only .tpl-t01b-logo__img--brand,
.bc-card.bc-t-template-01b .tpl-t01b-logo-circle--image-only .tpl-t01b-logo__img--brand {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  object-fit: cover;
  object-position: center center;
}

.pub-card--template-01b .tpl-t01b-logo__brand,
.bc-card.bc-t-template-01b .tpl-t01b-logo__brand {
  font-family: Cinzel, "Playfair Display", Georgia, serif;
  font-size: clamp(0.72rem, 2vw, 1.25rem);
  font-weight: 700;
  color: var(--tpl-t01b-maroon);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 0.35rem;
  line-height: 1.1;
}

.pub-card--template-01b .tpl-t01b-logo__divider,
.bc-card.bc-t-template-01b .tpl-t01b-logo__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(9.4rem, 88%);
  margin: 0.35rem 0;
}

.pub-card--template-01b .tpl-t01b-logo__divider-line,
.bc-card.bc-t-template-01b .tpl-t01b-logo__divider-line {
  height: 1px;
  background-color: var(--tpl-t01b-gold);
  flex-grow: 1;
  opacity: 0.6;
}

.pub-card--template-01b .tpl-t01b-logo__divider-dot,
.bc-card.bc-t-template-01b .tpl-t01b-logo__divider-dot {
  background-color: var(--tpl-t01b-gold);
  transform: rotate(45deg);
  margin: 0 0.2rem;
  flex-shrink: 0;
}

.pub-card--template-01b .tpl-t01b-logo__divider-dot--sm,
.bc-card.bc-t-template-01b .tpl-t01b-logo__divider-dot--sm {
  width: 3px;
  height: 3px;
}

.pub-card--template-01b .tpl-t01b-logo__divider-dot--lg,
.bc-card.bc-t-template-01b .tpl-t01b-logo__divider-dot--lg {
  width: 5px;
  height: 5px;
}

.pub-card--template-01b .tpl-t01b-logo__tagline,
.bc-card.bc-t-template-01b .tpl-t01b-logo__tagline {
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  font-size: clamp(0.58rem, 1.15vw, 0.72rem);
  font-weight: 500;
  color: var(--tpl-t01b-gold);
  letter-spacing: 0.08em;
  line-height: 1.15;
}

.pub-card--template-01b .tpl-t01b-extra,
.bc-card.bc-t-template-01b .tpl-t01b-extra {
  padding: 0.65rem clamp(1rem, 4vw, 2rem) 0;
  text-align: center;
}

.pub-card--template-01b .tpl-t01b-extra__line,
.bc-card.bc-t-template-01b .tpl-t01b-extra__line {
  margin: 0.2rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--tpl-muted);
}

/* Template 2 (01b) — contact / social chips: square/circle shells, equal inner icon size */
.pub-card--template-01b .tpl-t02-icon-circle,
.bc-card.bc-t-template-01b .tpl-t02-icon-circle {
  width: var(--tpl-ico-size, 72px);
  height: var(--tpl-ico-size, 72px);
  min-width: var(--tpl-ico-size, 72px);
  min-height: var(--tpl-ico-size, 72px);
  max-width: var(--tpl-ico-size, 72px);
  max-height: var(--tpl-ico-size, 72px);
  aspect-ratio: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pub-card--template-01b .tpl-t02-icon-circle svg,
.pub-card--template-01b .tpl-t02-icon-circle img.brand-ico,
.pub-card--template-01b .tpl-ico svg,
.pub-card--template-01b .tpl-ico img.brand-ico,
.bc-card.bc-t-template-01b .tpl-t02-icon-circle svg,
.bc-card.bc-t-template-01b .tpl-t02-icon-circle img.brand-ico,
.bc-card.bc-t-template-01b .tpl-ico svg,
.bc-card.bc-t-template-01b .tpl-ico img.brand-ico {
  width: var(--tpl-ico-svg, 38px) !important;
  height: var(--tpl-ico-svg, 38px) !important;
  max-width: var(--tpl-ico-svg, 38px) !important;
  max-height: var(--tpl-ico-svg, 38px) !important;
  object-fit: contain;
  object-position: center;
  display: block;
  flex-shrink: 0;
}

.pub-card--template-01b .tpl-t02-icon-circle .contact-icon-glyph,
.pub-card--template-01b .tpl-t02-icon-circle .social-icon-glyph,
.pub-card--template-01b .tpl-ico .contact-icon-glyph,
.pub-card--template-01b .tpl-ico .social-icon-glyph,
.bc-card.bc-t-template-01b .tpl-t02-icon-circle .contact-icon-glyph,
.bc-card.bc-t-template-01b .tpl-t02-icon-circle .social-icon-glyph,
.bc-card.bc-t-template-01b .tpl-ico .contact-icon-glyph,
.bc-card.bc-t-template-01b .tpl-ico .social-icon-glyph {
  font-size: var(--tpl-ico-svg, 38px) !important;
  line-height: 1;
}

/* Builder guide: no duplicate legacy profile row under hero */
.bc-card.bc-t-template-01b .tpl-preview-wrap--guide .tpl-t01b-hero + .tpl-identity-stack .tpl-profile {
  display: none;
}

.pub-card--template-01b .tpl-row--contact .tpl-ico:has(> img.brand-ico),
.bc-card.bc-t-template-01b .tpl-row--contact .tpl-ico:has(> img.brand-ico) {
  background: var(--tpl-chip-fill, var(--tpl-teal, #0099ae));
  color: var(--tpl-chip-icon, #fff);
}

.pub-card--template-01b .tpl-row--contact .tpl-ico:has(> img.brand-ico) img.brand-ico,
.bc-card.bc-t-template-01b .tpl-row--contact .tpl-ico:has(> img.brand-ico) img.brand-ico {
  filter: brightness(0) invert(1);
}

.pub-card--template-01b .tpl-t02-icon-circle:has(> img.brand-ico),
.pub-card--template-01b .tpl-t02-social-row .tpl-ico:has(> img.brand-ico),
.bc-card.bc-t-template-01b .tpl-t02-icon-circle:has(> img.brand-ico),
.bc-card.bc-t-template-01b .tpl-t02-social-row .tpl-ico:has(> img.brand-ico) {
  background: #fff;
  color: inherit;
}

.pub-card--template-01b[data-bc-icon-outline="1"] .tpl-ico img.brand-ico,
.pub-card--template-01b[data-bc-icon-outline="1"] .tpl-t02-icon-circle img.brand-ico,
.bc-card.bc-t-template-01b[data-bc-icon-outline="1"] .tpl-ico img.brand-ico,
.bc-card.bc-t-template-01b[data-bc-icon-outline="1"] .tpl-t02-icon-circle img.brand-ico {
  filter: brightness(0) invert(1);
}

/* Template 1B — same link row UX as Template 1 */
.pub-card--template-01b .tpl-links-grid--t01 .tpl-row__val,
.pub-card--template-01b .tpl-links-grid--t01 .tpl-row__val--social,
.bc-card.bc-t-template-01b .tpl-links-grid--t01 .tpl-row__val,
.bc-card.bc-t-template-01b .tpl-links-grid--t01 .tpl-row__val--social {
  display: none !important;
}

/* Template 1B — Round 1 ledger (Contact|Social, Delivery|Payment). Required on pub/live when tri-core ledger CSS is stale. */
.pub-card--template-01b .tpl-links-grid.tpl-links-grid--t01-ledger,
.bc-card.bc-t-template-01b .tpl-links-grid.tpl-links-grid--t01-ledger {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  align-items: stretch;
  padding: 0;
}

.pub-card--template-01b .tpl-links-grid.tpl-links-grid--t01-ledger::after,
.bc-card.bc-t-template-01b .tpl-links-grid.tpl-links-grid--t01-ledger::after {
  display: none;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-row,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.75rem 1.35rem;
  align-items: start;
  position: relative;
  min-width: 0;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-row--top-full,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-row--top-full {
  grid-template-columns: minmax(0, 1fr);
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-row--top:not(.tpl-links-row--top-full)::before,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-row--top:not(.tpl-links-row--top-full)::before {
  content: "";
  position: absolute;
  left: calc(50% - 0.5px);
  top: 0;
  bottom: 0;
  width: 1px;
  background: #dddddd;
  pointer-events: none;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-row--bottom,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-row--bottom {
  border-top: 1px solid var(--tpl-line, rgba(15, 23, 42, 0.12));
  padding-top: 1.05rem;
  margin-top: 0.05rem;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-row--bottom:has(.tpl-links-qcell--span-cols)::before,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-row--bottom:has(.tpl-links-qcell--span-cols)::before,
.pub-card--template-01b .tpl-links-grid--t01-ledger-pro .tpl-links-row--bottom-single:has(.tpl-links-qcell--span-cols)::before,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger-pro .tpl-links-row--bottom-single:has(.tpl-links-qcell--span-cols)::before {
  display: none;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-row--bottom:not(:has(.tpl-links-qcell--span-cols))::before,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-row--bottom:not(:has(.tpl-links-qcell--span-cols))::before {
  content: "";
  position: absolute;
  left: calc(50% - 0.5px);
  top: 1.05rem;
  bottom: 0;
  width: 1px;
  background: #dddddd;
  pointer-events: none;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--social,
.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--payment,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--social,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--payment {
  padding-left: 0.85rem;
  box-sizing: border-box;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--contact,
.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--delivery,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--contact,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--delivery {
  padding-right: 0.5rem;
  box-sizing: border-box;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-lg-h-contact,
.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-lg-h-social,
.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-lg-h-delivery,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-lg-h-contact,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-lg-h-social,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-lg-h-delivery {
  grid-column: unset !important;
  grid-row: unset !important;
  display: block;
  width: 100%;
  margin: 0 0 0.65rem;
  padding-left: 0 !important;
  padding-right: 0 !important;
  font-family: inherit;
  font-size: var(--tpl-heading-size, 0.9375rem);
  font-weight: 800;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell .tpl-lg-ul-contact,
.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell .tpl-lg-ul-social,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell .tpl-lg-ul-contact,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell .tpl-lg-ul-social {
  grid-column: unset !important;
  grid-row: unset !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--span-cols,
.bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-qcell--span-cols {
  grid-column: 1 / -1;
}

.pub-card--template-01b .tpl-cta-wrap--card-actions,
.bc-card.bc-t-template-01b .tpl-cta-wrap--card-actions {
  flex-direction: column;
  gap: 0.65rem;
  align-items: stretch;
  width: 100%;
}

.pub-card--template-01b .tpl-cta-wrap--card-actions .tpl-cta,
.bc-card.bc-t-template-01b .tpl-cta-wrap--card-actions .tpl-cta {
  width: 100%;
  max-width: 100%;
}

.pub-card--template-01b .tpl-card-action-btn,
.bc-card.bc-t-template-01b .tpl-card-action-btn {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: 100%;
  max-width: 100%;
  min-height: 2.75rem;
  padding: 0.72rem 1.15rem;
  border-radius: var(--tpl-radius-md, 10px);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  box-sizing: border-box;
}

.pub-card--template-01b .tpl-card-action-btn__ico,
.bc-card.bc-t-template-01b .tpl-card-action-btn__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
  line-height: 0;
}

.pub-card--template-01b .tpl-card-action-btn__ico svg,
.bc-card.bc-t-template-01b .tpl-card-action-btn__ico svg {
  width: 100%;
  height: 100%;
  display: block;
}

.pub-card--template-01b .tpl-card-action-btn__ico img.brand-ico,
.bc-card.bc-t-template-01b .tpl-card-action-btn__ico img.brand-ico {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.pub-card--template-01b .tpl-referral-cta-wrap,
.bc-card.bc-t-template-01b .tpl-referral-cta-wrap,
.pub-hosted-slot .tpl-referral-cta-wrap {
  margin: 1rem clamp(1rem, 4vw, 2rem) 0.65rem;
  text-align: center;
  width: 100%;
}

.pub-card--template-01b .tpl-referral-cta,
.bc-card.bc-t-template-01b .tpl-referral-cta,
.pub-hosted-slot .tpl-referral-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.65rem 1.35rem;
  border-radius: 10px;
  background: #0066ff !important;
  color: #ffffff !important;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none !important;
  text-transform: uppercase;
  box-shadow: 0 4px 14px rgba(0, 102, 255, 0.35);
  max-width: min(100%, 22rem);
  box-sizing: border-box;
  cursor: pointer;
  border: 0;
}

/* Template 2 — tablet: proportional disc + type */
@media (max-width: 900px) {
  .pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle),
  .bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) {
    --tpl-t01b-logo-inset: clamp(0.99rem, 4.2vw, 1.65rem);
    --tpl-t01b-logo-ring: clamp(7.19rem, 26.6vw, 10.12rem);
  }

  .pub-card--template-01b .tpl-t01b-photo-bg,
  .bc-card.bc-t-template-01b .tpl-t01b-photo-bg {
    min-height: clamp(100px, 28vw, 155px);
    max-height: min(42vw, 200px);
  }
}

/* Template 2 — phone: same gridlocked header, tighter scale */
@media (max-width: 720px) {
  .pub-card--template-01b .tpl-t01b-photo-bg,
  .bc-card.bc-t-template-01b .tpl-t01b-photo-bg {
    aspect-ratio: 1000 / 380;
    min-height: clamp(96px, 28vw, 140px);
    max-height: min(40vw, 185px);
  }

  .pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle),
  .bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) {
    --tpl-t01b-logo-inset: clamp(1.42rem, 5.88vw, 2.14rem);
    --tpl-t01b-logo-ring: clamp(8.58rem, 30.1vw, 10.95rem);
    --tpl-t01b-text-gutter: clamp(0.5rem, 2.2vw, 0.8rem);
  }

  .pub-card--template-01b .tpl-t01b-logo-circle,
  .bc-card.bc-t-template-01b .tpl-t01b-logo-circle {
    border-width: 3px;
  }
}

@media (max-width: 380px) {
  .pub-card--template-01b .tpl-links-grid--t01-ledger .tpl-links-row,
  .bc-card.bc-t-template-01b .tpl-links-grid--t01-ledger .tpl-links-row,
  .pub-card--template-01b .tpl-links-grid--t01-family .tpl-links-row,
  .bc-card.bc-t-template-01b .tpl-links-grid--t01-family .tpl-links-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.5rem 0.65rem;
  }

  .pub-card--template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle),
  .bc-card.bc-t-template-01b .tpl-t01b-hero:has(.tpl-t01b-logo-circle) {
    --tpl-t01b-logo-inset: clamp(0.98rem, 4.1vw, 1.49rem);
    --tpl-t01b-logo-ring: clamp(7.19rem, 27.5vw, 9.07rem);
  }
}
