/*
 Theme Name:   birdiebay
 Template:     hello-elementor
 Version:      1.0.0
 Text Domain:  hello-elementor-child
*/


@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,300;1,9..144,400;1,9..144,600&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* bb-* namespace (nav, home page, footer) */
  --bb-forest: #1f3d30;
  --bb-forest-deep: #13281f;
  --bb-forest-ink: #0c1d16;
  --bb-cream: #f3ecdc;
  --bb-cream-2: #ece3cf;
  --bb-bone: #faf5e8;
  --bb-ochre: #c9923e;
  --bb-ochre-soft: #e3b366;
  --bb-ink: #141a16;
  --bb-line: rgba(20,26,22,.14);
  --bb-line-cream: rgba(243,236,220,.18);
  --bb-rust: #a24a2a;

  /* unprefixed namespace (memberships / lessons / franchise kit) */
  --forest: #1f3d30;
  --forest-deep: #13281f;
  --forest-ink: #0c1d16;
  --cream: #f3ecdc;
  --cream-2: #ece3cf;
  --bone: #faf5e8;
  --ochre: #c9923e;
  --ochre-soft: #e3b366;
  --ink: #141a16;
  --line: rgba(20,26,22,.14);
  --line-cream: rgba(243,236,220,.18);
  --rust: #a24a2a;
  --sage: #7a8b6a;

  /* fr-* namespace (franchise operator / needs sections) */
  --fr-forest: #1f3d30;
  --fr-forest-deep: #13281f;
  --fr-forest-ink: #0c1d16;
  --fr-cream: #f3ecdc;
  --fr-cream-2: #ece3cf;
  --fr-bone: #faf5e8;
  --fr-ochre: #c9923e;
  --fr-ochre-soft: #e3b366;
  --fr-ink: #141a16;
  --fr-line: rgba(20,26,22,.14);
  --fr-line-cream: rgba(243,236,220,.18);
  --fr-rust: #a24a2a;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Inter", system-ui, sans-serif;
  color: var(--ink); background: var(--bone);
  font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased;
}

/* ------ Navigation ------ */
.bb-nav {
  background: var(--bb-forest);
  color: var(--bb-cream);
  border-bottom: 1px solid var(--bb-line-cream);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  font-family: "Inter", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.bb-nav-spacer { height: 73px; }
@media (max-width: 860px) {
  .bb-nav-spacer { height: 73px; }
}

/* WordPress admin bar offset (logged-in users only) */
.admin-bar .bb-nav { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar .bb-nav { top: 46px; }
}
@media screen and (max-width: 600px) {
  .admin-bar .bb-nav { top: 0; }
}
.bb-nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 32px; max-width: 1400px; margin: 0 auto;
}
.bb-nav-brand {
  display: flex; align-items: center; gap: 12px;
  font-family: "Fraunces", serif; font-weight: 600; font-size: 22px; letter-spacing: -.01em;
  color: var(--bb-cream); text-decoration: none;
}
.bb-nav-brand a img { width:140px; border-radius:0 !important; margin-bottom:-5px;}
.bb-nav-mark {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--bb-cream); color: var(--bb-forest);
  display: grid; place-items: center; font-weight: 700; font-size: 15px;
  position: relative; flex-shrink: 0;
}
.bb-nav-mark::after {
  content: ""; position: absolute; inset: 4px; border-radius: 50%;
  border: 1px dashed var(--bb-forest); opacity: .35;
}
.bb-nav-links { display: flex; gap: 30px; font-size: 13.5px; letter-spacing: .02em; }
.bb-nav-links a { color: var(--bb-cream); text-decoration: none; opacity: .85; transition: opacity .15s; }
.bb-nav-links a:hover { opacity: 1; }
.bb-nav-cta { display: flex; align-items: center; gap: 14px; }
.bb-nav-time { font-family: "JetBrains Mono", monospace; font-size: 11px; opacity: .65; letter-spacing: .1em; }
.bb-nav-time.bb-nav-open { color: var(--bb-ochre-soft); opacity: .9; }
.bb-nav-book {
  display: inline-flex; align-items: center; padding: 10px 18px; border-radius: 999px;
  font-weight: 500; font-size: 14px; letter-spacing: .02em;
  background: var(--bb-ochre); color: var(--bb-forest-deep);
  text-decoration: none; transition: transform .15s ease, background .2s ease;
}
.bb-nav-book:hover { transform: translateY(-1px); background: var(--bb-ochre-soft); }

.bb-nav-hamburger {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 36px; height: 36px; background: transparent; border: none; cursor: pointer; padding: 4px;
}
.bb-nav-hamburger span { display: block; height: 1.5px; background: var(--bb-cream); border-radius: 2px; transition: transform .25s, opacity .25s; }
.bb-nav-hamburger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.bb-nav-hamburger.open span:nth-child(2) { opacity: 0; }
.bb-nav-hamburger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.bb-nav-drawer {
  display: none; flex-direction: column; gap: 0;
  background: var(--bb-forest-deep); border-top: 1px solid var(--bb-line-cream);
  padding: 8px 0 16px;
}
.bb-nav-drawer.open { display: flex; }
.bb-nav-drawer a { padding: 14px 32px; font-size: 15px; color: var(--bb-cream); text-decoration: none; opacity: .85; }
.bb-nav-drawer a:hover { opacity: 1; background: rgba(243,236,220,.04); }
.bb-nav-drawer .bb-nav-book { margin: 12px 32px 0; width: fit-content; }

@media (max-width: 860px) {
  .bb-nav-links, .bb-nav-time { display: none; }
  .bb-nav-hamburger { display: flex; margin-left: 25px; }
  .bb-nav-cta { gap: 8px; margin-left: auto; }
  .bb-nav-inner .bb-nav-cta .bb-nav-book {
    padding: 8px 14px; font-size: 13px;
  }
}

/* --------- HOME PAGE --------- */ 

/* HP Hero */
.bb-hero {
  background: var(--bb-forest);
  color: var(--bb-cream);
  position: relative;
  overflow: hidden;
  padding: 72px 0 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
.bb-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 1px 1px, rgba(243,236,220,.07) 1px, transparent 0);
  background-size: 22px 22px;
  pointer-events: none;
  z-index: 0;
}

.bb-topo { position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: .55; mix-blend-mode: screen; }
.bb-topo svg { width: 100%; height: 100%; display: block; }
.bb-topo ellipse, .bb-topo path { fill: none; stroke: rgba(227,179,102,.16); stroke-width: 1; vector-effect: non-scaling-stroke; }
.bb-topo .bb-topo-ring { stroke: rgba(227,179,102,.22); }
.bb-topo .bb-topo-faint { stroke: rgba(243,236,220,.07); }
.bb-topo .bb-topo-idx { stroke: rgba(227,179,102,.32); stroke-width: 1.25; }
.bb-topo text { fill: rgba(227,179,102,.35); font-family: "JetBrains Mono", monospace; font-size: 9px; letter-spacing: .2em; }

.bb-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1; }

.bb-hero-grid { display: grid; grid-template-columns: 1fr; gap: 56px; align-items: end; }

.bb-eyebrow {
  font-family: "JetBrains Mono", monospace;
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 10px;
}
.bb-eyebrow::before { content: ""; width: 18px; height: 1px; background: currentColor; display: inline-block; }

.bb-hero-h1 {
  font-family: "Fraunces", serif;
  font-weight: 400;
  font-size: 20rem;
  line-height: .80;
  letter-spacing: -.035em;
  margin: 28px 0 0;
  font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 144;
  color: var(--bb-cream);
  text-align: center;
}
.bb-hero-h1 em { font-style: italic; font-weight: 300; color: var(--bb-ochre-soft); }

.bb-hero-sub { font-size: 20px; line-height: 1.5; max-width: 650px; opacity: .85; margin-top:50px; text-align:center; margin:40px auto;}
.bb-hero-ctas { display: flex; gap: 12px; margin-top: 40px; flex-wrap: wrap; justify-content:center;}

.bb-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 22px; border-radius: 999px;
  font-weight: 500; font-size: 14px; letter-spacing: .02em;
  border: 1px solid transparent; cursor: pointer; text-decoration: none;
  transition: transform .15s ease, background .2s ease, color .2s ease;
}
.bb-btn:hover { transform: translateY(-1px); }
.bb-btn-primary { background: var(--bb-ochre); color: var(--bb-forest-ink); }
.bb-btn-primary:hover { background: var(--bb-ochre-soft); }
.bb-btn-ghost { background: transparent; color: var(--bb-cream); border-color: rgba(243,236,220,.35); }
.bb-btn-ghost:hover { background: rgba(243,236,220,.08); }

.bb-strip { margin-top: 60px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; padding-bottom: 40px; }
.bb-strip figure { margin: 0; border-radius: 10px; overflow: hidden; background: var(--bb-forest-deep); aspect-ratio: 3/4; position: relative; border: 1px solid var(--bb-line-cream); }
.bb-strip figure:nth-child(2) { transform: translateY(-14px); }
.bb-strip figure:nth-child(4) { transform: translateY(-8px); }
.bb-ph {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(135deg, rgba(243,236,220,.055) 0 10px, transparent 10px 20px), linear-gradient(180deg, rgba(243,236,220,.05), rgba(243,236,220,.02));
  display: flex; align-items: flex-end; justify-content: flex-start;
  padding: 14px; color: rgba(243,236,220,.6);
  font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
}

.bb-hero-meta { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--bb-line-cream); margin-top: 64px; }
.bb-hero-meta > div { padding: 24px 20px 28px; border-right: 1px solid var(--bb-line-cream); }
.bb-hero-meta > div:last-child { border-right: none; }
.bb-hero-meta .bb-k { font-family: "Fraunces", serif; font-size: 44px; line-height: 1; font-weight: 500; letter-spacing: -.02em; }
.bb-hero-meta .bb-l { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; margin-top: 10px; opacity: .7; }

@media (max-width: 960px) {
  .bb-hero { padding: 60px 0 0; }
  .bb-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .bb-hero-h1 { font-size: clamp(4rem, 13.5vw, 12rem); }
  .bb-hero-sub { font-size: 17px; }
  .bb-hero-meta { grid-template-columns: repeat(2, 1fr); }
  .bb-hero-meta > div { border-bottom: 1px solid var(--bb-line-cream); }
  .bb-strip { grid-template-columns: repeat(3, 1fr); }
  .bb-strip figure:nth-child(n+4) { display: none; }
}

@media (max-width: 480px) {
  .bb-hero { padding: 48px 0 0; }
  .bb-container { padding: 0 20px; }
  .bb-hero-h1 { font-size: clamp(3.2rem, 14.5vw, 5.5rem); line-height: .85; }
  .bb-hero-sub { font-size: 15px; margin: 24px auto; }
  .bb-hero-ctas { flex-direction: column; align-items: center; }
  .bb-btn { width: 100%; max-width: 320px; justify-content: center; }
  .bb-hero-meta > div { padding: 18px 14px 22px; }
  .bb-hero-meta .bb-k { font-size: 34px; }
  .bb-hero-meta .bb-l { font-size: 9.5px; }
}

/* LIGHTBOX */
.bb-lb { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.bb-lb[hidden] { display: none; }
.bb-lb-backdrop { position: absolute; inset: 0; background: rgba(12,29,22,.92); cursor: pointer; }
.bb-lb-inner { position: relative; z-index: 1; width: auto; max-width: 92vw; animation: bb-lb-in .25s cubic-bezier(0.16,1,.3,1); }
@keyframes bb-lb-in { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
.bb-lb-embed { position: relative; width: min(92vw, calc(82vh * 9 / 16)); aspect-ratio: 9 / 16; background: #000; border-radius: 10px; overflow: hidden; }
.bb-lb-embed iframe, .bb-lb-embed video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.bb-lb-close {
  position: absolute; top: -44px; right: 0;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(243,236,220,.15); border: 1px solid rgba(243,236,220,.3);
  color: #f3ecdc; font-size: 16px; cursor: pointer; display: grid; place-items: center;
  transition: background .15s;
  padding:0;
}
.bb-lb-close:hover { background: rgba(243,236,220,.25); }

/* HP About */
.bb-about {
  background: var(--bb-bone);
  padding: 120px 0 40px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  color: var(--bb-ink);
}
.bb-a-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }

.bb-a-label {
  display: flex; align-items: baseline; gap: 18px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--bb-forest); margin-bottom: 28px;
}
.bb-a-num { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre); letter-spacing: 0; text-transform: none; }

.bb-a-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 80px; align-items: start; }

.bb-a-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(44px, 5vw, 76px); line-height: .95; letter-spacing: -.028em; margin: 0;
  color: var(--bb-ink);
}
.bb-a-h2 em { font-style: italic; font-weight: 300; color: var(--bb-ochre); }

.bb-a-lede { font-size: 18px; line-height: 1.55; color: #2c3831; }
.bb-a-lede p + p { margin-top: 16px; }
.bb-a-drop::first-letter {
  font-family: "Fraunces", serif; font-weight: 500;
  font-size: 68px; line-height: .85; float: left;
  padding: 4px 10px 0 0; color: var(--bb-forest);
}

/* THREE-UP */
.bb-a-three {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
  margin-top: 72px; border-top: 1px solid var(--bb-line); padding-top: 32px;
}
.bb-a-three h3 {
  font-family: "Fraunces", serif; font-weight: 500;
  font-size: 28px; letter-spacing: -.015em; margin: 10px 0 10px; color: var(--bb-ink);
}
.bb-a-three p { font-size: 14.5px; color: #3a4740; margin: 0; }
.bb-a-fnum { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre); }
.bb-a-ico {
  width: 44px; height: 44px; border: 1px solid var(--bb-forest); border-radius: 50%;
  display: grid; place-items: center; margin-bottom: 14px; color: var(--bb-forest);
}

/* MOSAIC */
.bb-a-mosaic {
  margin-top: 80px;
  display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 120px; gap: 14px;
}
.bb-a-mosaic figure { margin: 0; border-radius: 10px; overflow: hidden; background: var(--bb-cream-2); position: relative; }
.bb-a-m1 { grid-column: span 4; grid-row: span 2; }
.bb-a-m2 { grid-column: span 5; grid-row: span 3; }
.bb-a-m3 { grid-column: span 3; grid-row: span 2; }
.bb-a-m4 { grid-column: span 4; grid-row: span 2; }
.bb-a-m5 { grid-column: span 3; grid-row: span 2; }
.bb-a-ph {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(135deg, rgba(20,26,22,.06) 0 10px, transparent 10px 20px), linear-gradient(180deg, rgba(20,26,22,.04), rgba(20,26,22,.02));
  display: flex; align-items: flex-end; padding: 14px;
  color: rgba(20,26,22,.55); font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
}

@media (max-width: 960px) {
  .bb-a-grid { grid-template-columns: 1fr; gap: 32px; }
  .bb-a-three { grid-template-columns: 1fr; }
  .bb-a-mosaic { grid-auto-rows: 90px; }
}

/* HP Practice */
.bb-zone {
  background: var(--bb-cream);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  color: var(--bb-ink);
  border-bottom:none;
}
.bb-z-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.bb-z-label {
  display: flex; align-items: baseline; gap: 18px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--bb-forest); margin-bottom: 28px;
}
.bb-z-num { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre); letter-spacing: 0; text-transform: none; }

.bb-z-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 60px; align-items: center; }

.bb-z-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(52px, 6.5vw, 104px); line-height: .88; letter-spacing: -.03em;
  margin: 10px 0 24px; color: var(--bb-ink);
}
.bb-z-h2 em { font-style: italic; font-weight: 300; color: var(--bb-forest); }
.bb-z-flourish { display: inline-block; position: relative; }
.bb-z-flourish::after {
  content: ""; position: absolute; left: -8%; right: -8%; top: 10%; bottom: 10%;
  border: 1.5px solid var(--bb-ochre); border-radius: 50%;
  transform: rotate(-3deg) scale(1.08, 1.2); opacity: .85; pointer-events: none;
}
.bb-z-lede { font-size: 17px; line-height: 1.55; color: #2c3831; max-width: 480px; margin-bottom: 32px; }

.bb-z-tabs {
  display: inline-flex; gap: 6px; padding: 6px;
  border: 1px solid var(--bb-line); border-radius: 999px;
  background: #faf5e8; margin-bottom: 24px;
}
.bb-z-tab {
  padding: 10px 18px; border-radius: 999px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: #4a544d; cursor: pointer; border: none; background: transparent; transition: all .2s ease;
}
.bb-z-tab.active { background: var(--bb-forest); color: var(--bb-cream); }
.bb-z-tab:hover:not(.active) { background: var(--bb-ochre) !important; color: var(--bb-cream) !important; }

.bb-z-panel { display: none; animation: bb-z-fade .3s ease; }
.bb-z-panel.active { display: block; }
@keyframes bb-z-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.bb-z-panel h3 { font-family: "Fraunces", serif; font-weight: 500; font-size: 34px; letter-spacing: -.015em; margin: 0 0 10px; line-height: 1.1; color: var(--bb-ink); }
.bb-z-panel p { font-size: 15.5px; color: #3a4740; margin: 0 0 20px; max-width: 460px; }
.bb-z-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; font-size: 14px; color: #2c3831; }
.bb-z-list span { display: flex; gap: 10px; align-items: baseline; }
.bb-z-list span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--bb-ochre); flex-shrink: 0; transform: translateY(-2px); }

/* PLAYBOOK */
.bb-playbook {
  position: relative; background: var(--bb-forest); color: var(--bb-cream);
  border-radius: 14px; overflow: hidden;
  padding:0;
  min-height: auto;
  box-shadow: 0 30px 60px -30px rgba(20,61,48,.4);
}
.bb-playbook::before {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(circle at 1px 1px, rgba(243,236,220,.08) 1px, transparent 0);
  background-size: 20px 20px; pointer-events: none;
}
.bb-pb-fig { position: relative; z-index: 1; }
.bb-pb-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 20px; }
.bb-pb-t { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; opacity: .7; }
.bb-pb-n { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre-soft); }
.bb-pb-img { display: block; width: 100%; height: auto; border-radius: 6px; }
.bb-pb-foot {
  position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  margin-top: 8px; padding-top: 20px; border-top: 1px solid var(--bb-line-cream);
}
.bb-pb-c { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; opacity: .7; }
.bb-pb-v { font-family: "Fraunces", serif; font-size: 22px; font-weight: 500; letter-spacing: -.01em; margin-top: 4px; }

@media (max-width: 960px) {
  .bb-z-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* HP Sim */
.bb-sims {
  background: var(--bb-forest);
  color: var(--bb-cream);
  padding: 120px 0;
  position: relative;
  overflow: hidden;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
.bb-sims::before {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(circle at 1px 1px, rgba(243,236,220,.05) 1px, transparent 0);
  background-size: 26px 26px; pointer-events: none;
}
.bb-s-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1; }

.bb-s-label {
  display: flex; align-items: baseline; gap: 18px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--bb-cream); opacity: .85; margin-bottom: 28px;
}
.bb-s-num { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre-soft); letter-spacing: 0; text-transform: none; }

.bb-s-head { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 56px; }
.bb-s-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(44px, 5.2vw, 82px); line-height: .95; letter-spacing: -.028em;
  margin: 10px 0 0; color: var(--bb-cream);
}
.bb-s-h2 em { font-style: italic; color: var(--bb-ochre-soft); font-weight: 300; }
.bb-s-copy { font-size: 16.5px; line-height: 1.55; opacity: .8; max-width: 500px; border-left: 1px solid var(--bb-line-cream); padding-left: 24px; }
.bb-s-kicker { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--bb-ochre-soft); margin-bottom: 10px; display: block; }

.bb-s-stats {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--bb-line-cream); border-bottom: 1px solid var(--bb-line-cream);
  margin-bottom: 64px;
}
.bb-s-stats > div { padding: 28px 22px; border-right: 1px solid var(--bb-line-cream); }
.bb-s-stats > div:last-child { border-right: none; }
.bb-s-k { font-family: "Fraunces", serif; font-size: 48px; line-height: 1; font-weight: 500; letter-spacing: -.02em; color: var(--bb-cream); }
.bb-s-k sub { font-size: 18px; opacity: .55; vertical-align: super; margin-left: 2px; }
.bb-s-l { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; margin-top: 12px; opacity: .7; line-height: 1.5; }

.bb-s-models { display: grid; grid-template-columns: 1fr; gap: 24px; margin-bottom: 60px; }
.bb-s-model {
  background: var(--bb-forest-deep); border: 1px solid var(--bb-line-cream);
  border-radius: 14px; overflow: hidden; display: flex; flex-direction: column;
}
.bb-s-shot {
  position: relative;
}
.bb-s-cap { position: absolute; left: 16px; top: 16px; font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: rgba(243,236,220,.65); }
.bb-s-bigno { position: absolute; right: 20px; bottom: 14px; font-family: "Fraunces", serif; font-weight: 300; font-style: italic; font-size: 128px; line-height: .85; color: rgba(227,179,102,.28); }
.bb-s-screen {
  position: absolute; left: 14%; right: 14%; top: 14%; bottom: 30%;
  border: 1px solid rgba(243,236,220,.22); border-radius: 4px;
  background: linear-gradient(180deg, rgba(227,179,102,.08), rgba(227,179,102,.02)), repeating-linear-gradient(0deg, rgba(243,236,220,.04) 0 2px, transparent 2px 4px);
}
.bb-s-plate { position: absolute; left: 20%; right: 20%; bottom: 14%; height: 14%; background: linear-gradient(180deg, rgba(243,236,220,.15), rgba(243,236,220,.02)); border: 1px solid rgba(243,236,220,.22); border-radius: 3px; }
.bb-s-body { padding: 26px 28px 28px; flex: 1; display: flex; flex-direction: column; }
.bb-s-tag { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--bb-ochre-soft); }
.bb-s-body h3 { font-family: "Fraunces", serif; font-weight: 500; font-size: 40px; letter-spacing: -.02em; margin: 10px 0 6px; line-height: 1; color: var(--bb-cream); }
.bb-s-sub { font-size: 14.5px; opacity: .75; margin: 0 0 18px; }
.bb-s-body p { font-size: 14.5px; line-height: 1.55; opacity: .85; margin: 0 0 18px; }
.bb-s-specs { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--bb-line-cream); margin-top: auto; }
.bb-s-specs > div { padding: 14px 0 4px; border-right: 1px solid var(--bb-line-cream); }
.bb-s-specs > div:nth-child(2n) { border-right: none; padding-left: 18px; }
.bb-s-specs > div:nth-child(n+3) { border-top: 1px solid var(--bb-line-cream); padding-top: 14px; }
.bb-s-sk { font-family: "Fraunces", serif; font-size: 22px; font-weight: 500; letter-spacing: -.01em; color: var(--bb-cream); }
.bb-s-sl { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; opacity: .65; margin-top: 4px; }

.bb-s-features { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--bb-line-cream); }
.bb-s-feat {
  padding: 30px 28px 34px; border-right: 1px solid var(--bb-line-cream); border-bottom: 1px solid var(--bb-line-cream);
  display: flex; flex-direction: column; gap: 12px;
}
.bb-s-feat:nth-child(3n) { border-right: none; }
.bb-s-fno { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre-soft); }
.bb-s-feat h4 { font-family: "Fraunces", serif; font-weight: 500; font-size: 24px; letter-spacing: -.015em; margin: 0; line-height: 1.1; color: var(--bb-cream); }
.bb-s-feat p { font-size: 14px; line-height: 1.55; opacity: .78; margin: 0; }
.bb-s-fico { width: 38px; height: 38px; border: 1px solid var(--bb-ochre-soft); border-radius: 50%; display: grid; place-items: center; color: var(--bb-ochre-soft); margin-bottom: 4px; }

.bb-s-foot { display: flex; justify-content: space-between; align-items: center; gap: 30px; flex-wrap: wrap;  }
.bb-s-fine { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; opacity: .55; }
.bb-s-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 22px; border-radius: 999px; font-weight: 500; font-size: 14px; letter-spacing: .02em;
  background: var(--bb-ochre); color: var(--bb-forest-deep); text-decoration: none;
  transition: transform .15s ease, background .2s ease;
}
.bb-s-btn:hover { transform: translateY(-1px); background: var(--bb-ochre-soft); }

@media (max-width: 960px) {
  .bb-s-head { grid-template-columns: 1fr; gap: 24px; }
  .bb-s-stats { grid-template-columns: repeat(2, 1fr); }
  .bb-s-stats > div:nth-child(2n) { border-right: none; }
  .bb-s-models { grid-template-columns: 1fr; }
  .bb-s-features { grid-template-columns: 1fr; }
  .bb-s-feat { border-right: none !important; }
}

/* HP Marquee */
.bb-marquee {
  background: var(--bb-bone);
  color: var(--bb-forest);
  padding: 40px 0;
  overflow: hidden;
  border-top: 1px solid var(--bb-line);
  border-bottom: 1px solid var(--bb-line);
}
.bb-mq-track {
  display: flex;
  gap: 48px;
  white-space: nowrap;
  animation: bb-mq-scroll 40s linear infinite;
  font-family: "Fraunces", serif;
  font-weight: 300;
  font-style: italic;
  font-size: clamp(56px, 8vw, 128px);
  line-height: 1;
  letter-spacing: -.02em;
}
.bb-mq-track span { display: inline-flex; align-items: center; gap: 48px; }
.bb-mq-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--bb-ochre); display: inline-block; flex-shrink: 0; }

@keyframes bb-mq-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

@media (prefers-reduced-motion: reduce) {
  .bb-mq-track { animation: none; }
}

/* HP Courses */
.bb-courses {
  --bb-line: rgba(20,26,22,.18); /* intentional: darker hairline, courses only */
  background: var(--bb-cream);
  padding: 120px 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  color: var(--bb-ink);
}
.elementor-widget:not(:last-child) {
    margin-block-end: 0 !important;
}
.bb-cr-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }

.bb-cr-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 56px; gap: 40px; flex-wrap: wrap; }
.bb-cr-label {
  display: flex; align-items: baseline; gap: 18px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--bb-forest); margin-bottom: 12px;
}
.bb-cr-num { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre); letter-spacing: 0; text-transform: none; }
.bb-cr-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(44px, 5vw, 76px); line-height: .95; letter-spacing: -.028em; margin: 10px 0 0; color: var(--bb-ink);
}
.bb-cr-h2 em { font-style: italic; color: var(--bb-forest); font-weight: 300; }
.bb-cr-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 22px; border-radius: 999px; font-weight: 500; font-size: 14px;
  background: var(--bb-forest); color: var(--bb-cream);
  text-decoration: none; transition: transform .15s ease, background .2s ease; white-space: nowrap; flex-shrink: 0;
}
.bb-cr-btn:hover { transform: translateY(-1px); background: var(--bb-forest-deep); }

.bb-cr-row {
  display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: stretch;
  border-top: 1px solid var(--bb-line); padding: 40px 0;
}
.bb-cr-last { border-bottom: 1px solid var(--bb-line); }
.bb-cr-info { display: flex; flex-direction: column; justify-content: space-between; padding: 10px 0; }
.bb-cr-no { font-family: "Fraunces", serif; font-style: italic; color: var(--bb-ochre); font-size: 14px; }
.bb-cr-info h3 {
  font-family: "Fraunces", serif; font-weight: 500;
  font-size: clamp(40px, 4.5vw, 64px); line-height: .95; letter-spacing: -.025em; margin: 14px 0; color: var(--bb-ink);
}
.bb-cr-loc { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #4a544d; margin-bottom: 16px; }
.bb-cr-info p { font-size: 15.5px; color: #2c3831; max-width: 520px; margin: 0 0 24px; }
.bb-cr-stats { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--bb-line); padding-top: 16px; gap: 10px; }
.bb-cr-k { font-family: "Fraunces", serif; font-size: 28px; font-weight: 500; letter-spacing: -.015em; color: var(--bb-ink); }
.bb-cr-l { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; opacity: .65; }

.bb-cr-img {
  border-radius: 12px; overflow: hidden; min-height: 340px;
  background: var(--bb-forest); position: relative; margin: 0;
  height:100% !important;
  width: 100% !important;
  object-fit: cover !important;
}
.bb-cr-ph {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(135deg, rgba(243,236,220,.055) 0 10px, transparent 10px 20px), linear-gradient(180deg, rgba(243,236,220,.05), rgba(243,236,220,.02));
  display: flex; align-items: flex-end; 
  color: rgba(243,236,220,.6); font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
}
.bb-cr-ph img {
    height: 100%;
    width:100%;
    object-fit: cover;
}
@media (max-width: 960px) {
  .bb-cr-row { grid-template-columns: 1fr; }
}

/* HP Testimonials */
.bb-wall {
  background: var(--bb-bone);
  padding: 120px 0;
  border-bottom: 1px solid var(--bb-line);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  color: var(--bb-ink);
}
.bb-w-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }

.bb-w-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 56px; gap: 40px; flex-wrap: wrap; }
.bb-w-label {
  display: flex; align-items: baseline; gap: 18px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--bb-forest); margin-bottom: 12px;
}
.bb-w-num { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre); letter-spacing: 0; text-transform: none; }
.bb-w-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(44px, 5vw, 76px); line-height: .95; letter-spacing: -.028em; margin: 10px 0 0; color: var(--bb-ink);
}
.bb-w-h2 em { font-style: italic; color: var(--bb-forest); font-weight: 300; }
.bb-w-rating { display: flex; align-items: center; gap: 14px; font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: #4a544d; }
.bb-w-stars { color: var(--bb-ochre); letter-spacing: 2px; font-size: 16px; }

/* 6-col grid: top row fills 3 cards (span 2 each), bottom row centers 2 cards */
.bb-w-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
}

.bb-quote {
  grid-column: span 2;
  aspect-ratio: 1;
  background: var(--bb-cream); border: 1px solid var(--bb-line); border-radius: 10px;
  padding: 28px 26px 24px; display: flex; flex-direction: column; gap: 16px;
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .55s ease, transform .6s ease;
}
.bb-quote.bb-in { opacity: 1; transform: none; }
.bb-quote:nth-child(4) { grid-column: 2 / span 2; }
.bb-quote:nth-child(5) { grid-column: 4 / span 2; }

.bb-q-mark {
  font-family: "Fraunces", serif; font-style: italic; font-weight: 300;
  font-size: 64px; line-height: 0.3; color: var(--bb-ochre);
  display: block; height: 18px;
}
.bb-quote blockquote {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: 19px; line-height: 1.35; letter-spacing: -.005em;
  color: var(--bb-ink); margin: 0;
}
.bb-q-lg blockquote  { font-size: 24px; }
.bb-q-wide blockquote { font-size: 21px; }

.bb-q-cite {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 14px; border-top: 1px dashed var(--bb-line); margin-top: auto;
  font-size: 12.5px; color: #4a544d;
}
.bb-q-name { font-family: "Fraunces", serif; font-size: 15px; font-weight: 500; color: var(--bb-ink); letter-spacing: -.005em; }
.bb-q-meta { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; opacity: .7; }

.bb-circled { position: relative; display: inline-block; padding: 0 4px; }
.bb-circled::after {
  content: ""; position: absolute; left: -4px; right: -4px; top: -2px; bottom: -2px;
  border: 1.5px solid var(--bb-ochre); border-radius: 50%;
  transform: rotate(-2deg) scaleX(1.1); opacity: .9;
}

.bb-card-dark { background: var(--bb-forest); color: var(--bb-cream); border-color: transparent; }
.bb-card-dark blockquote { color: var(--bb-cream); }
.bb-card-dark .bb-q-cite { border-top-color: var(--bb-line-cream); color: rgba(243,236,220,.75); }
.bb-card-dark .bb-q-name { color: var(--bb-cream); }

.bb-card-ochre { background: var(--bb-ochre); color: var(--bb-forest-deep); border-color: transparent; }
.bb-card-ochre blockquote { color: var(--bb-forest-deep); }
.bb-card-ochre .bb-q-cite { border-top-color: rgba(20,26,22,.2); color: rgba(20,26,22,.75); }
.bb-card-ochre .bb-q-mark { color: var(--bb-forest); }

@media (prefers-reduced-motion: reduce) {
  .bb-quote { opacity: 1 !important; transform: none !important; transition: none !important; }
}

@media (max-width: 960px) {
  .bb-w-grid { grid-template-columns: repeat(4, 1fr); }
  .bb-quote { grid-column: span 2; }
  .bb-quote:nth-child(4) { grid-column: 1 / span 2; }
  .bb-quote:nth-child(5) { grid-column: 3 / span 2; }
}
@media (max-width: 600px) {
  .bb-w-grid { grid-template-columns: 1fr; }
  .bb-quote { grid-column: 1 !important; aspect-ratio: auto; }
}

/* HP FAQ */
.bb-faq {
  background: var(--bb-forest);
  color: var(--bb-cream);
  padding: 120px 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
.bb-fq-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.bb-fq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; }

.bb-fq-label {
  display: flex; align-items: baseline; gap: 18px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--bb-cream); opacity: .8; margin-bottom: 12px;
}
.bb-fq-num { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre-soft); letter-spacing: 0; text-transform: none; opacity: 1; }
.bb-fq-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(44px, 5vw, 72px); line-height: .95; letter-spacing: -.028em; margin: 10px 0 0; color: var(--bb-cream);
}
.bb-fq-h2 em { font-style: italic; color: var(--bb-ochre-soft); font-weight: 300; }
.bb-fq-aside p { opacity: .75; font-size: 15px; max-width: 320px; margin-top: 20px; }
.bb-fq-phone { font-family: "JetBrains Mono", monospace; margin-top: 24px; opacity: .7; font-size: 12px; letter-spacing: .15em; }

details.bb-fq-q { border-top: 1px solid var(--bb-line-cream); padding: 20px 0; }
details.bb-fq-q:last-of-type { border-bottom: 1px solid var(--bb-line-cream); }
details.bb-fq-q summary {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  font-family: "Fraunces", serif; font-size: 22px; font-weight: 500; letter-spacing: -.01em; color: var(--bb-cream);
}
details.bb-fq-q summary::-webkit-details-marker { display: none; }
.bb-fq-n { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .15em; opacity: .55; font-weight: 400; }
.bb-fq-plus {
  width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--bb-cream);
  display: grid; place-items: center; font-size: 18px; opacity: .7;
  transition: transform .3s cubic-bezier(0.16,1,.3,1), background .2s, border-color .2s;
  flex-shrink: 0;
}
details.bb-fq-q[open] summary .bb-fq-plus {
  transform: rotate(45deg);
  background: var(--bb-ochre); color: var(--bb-forest-deep); border-color: var(--bb-ochre); opacity: 1;
}
.bb-fq-a { padding-top: 14px; font-size: 15px; line-height: 1.6; opacity: .8; max-width: 640px; overflow: hidden; }

@media (max-width: 960px) {
  .bb-fq-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* HP Visit */
.bb-visit {
  background: var(--bb-bone);
  padding: 120px 0;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  color: var(--bb-ink);
}
.bb-vi-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }

.bb-vi-label {
  display: flex; align-items: baseline; gap: 18px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--bb-forest); margin-bottom: 12px;
}
.bb-vi-num { font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--bb-ochre); letter-spacing: 0; text-transform: none; }
.bb-vi-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(44px, 5vw, 72px); line-height: .95; letter-spacing: -.028em; margin: 10px 0 28px; color: var(--bb-ink);
}
.bb-vi-h2 em { font-style: italic; color: var(--bb-forest); font-weight: 300; }

.bb-vi-tabs {
  display: inline-flex; gap: 6px; padding: 6px;
  border: 1px solid var(--bb-line); border-radius: 999px;
  background: var(--bb-cream); margin-bottom: 36px;
}
.bb-vi-tab {
  padding: 10px 18px; border-radius: 999px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: #4a544d; cursor: pointer; border: none; background: transparent; transition: all .2s ease;
}
.bb-vi-tab.active { background: var(--bb-forest); color: var(--bb-cream); }
.bb-vi-tab:hover:not(.active) { background: var(--bb-ochre) !important; color: var(--bb-cream) !important; }

.bb-vi-panel { display: none; animation: bb-vi-fade .3s ease; }
.bb-vi-panel.active { display: block; }
@keyframes bb-vi-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.bb-vi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: stretch; }
.bb-vi-grid > div:not(.bb-vi-map) { display: flex; }

.bb-vi-card { background: var(--bb-cream); border-radius: 12px; padding: 28px; border: 1px solid var(--bb-line); width: 100%; }
.bb-vi-cardlabel { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: #4a544d; }
.bb-vi-card h3 { font-family: "Fraunces", serif; font-size: 32px; font-weight: 500; letter-spacing: -.015em; margin: 6px 0; color: var(--bb-ink); }
.bb-vi-card address { font-style: normal; font-size: 14.5px; color: #2c3831; line-height: 1.5; margin-bottom: 18px; }
.bb-vi-coords { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .15em; color: #4a544d; }

.bb-vi-hours { display: flex; flex-direction: column; row-gap: 6px; font-size: 14px; color: #2c3831; border-top: 1px dashed var(--bb-line); padding-top: 14px; }
.bb-vi-row { display: grid; grid-template-columns: 1fr auto; column-gap: 20px; align-items: center; }
.bb-vi-day { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: #4a544d; align-self: center; }
.bb-vi-h { font-family: "Fraunces", serif; font-size: 15px; }
.bb-vi-today { color: var(--bb-rust) !important; font-weight: 600; }

.bb-vi-btn-ink {
  display: inline-flex; align-items: center; padding: 14px 22px; border-radius: 999px;
  font-weight: 500; font-size: 14px; background: var(--bb-forest); color: var(--bb-cream);
  text-decoration: none; transition: transform .15s ease, background .2s ease;
}
.bb-vi-btn-ink:hover { transform: translateY(-1px); background: var(--bb-forest-deep); }
.bb-vi-btn-outline {
  display: inline-flex; align-items: center; padding: 14px 22px; border-radius: 999px;
  font-weight: 500; font-size: 14px; background: transparent; color: var(--bb-forest);
  border: 1px solid var(--bb-forest); text-decoration: none; transition: transform .15s ease;
}
.bb-vi-btn-outline:hover { transform: translateY(-1px); }

.bb-vi-map { background: var(--bb-cream); border: 1px solid var(--bb-line); border-radius: 12px; aspect-ratio: 4/3; position: relative; overflow: hidden; }
.bb-vi-map svg, .bb-vi-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bb-vi-pin { position: absolute; left: 52%; top: 48%; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; gap: 4px; }
.bb-vi-pin-drop { width: 22px; height: 22px; border-radius: 50% 50% 50% 0; background: var(--bb-ochre); transform: rotate(-45deg); box-shadow: 0 6px 14px -4px rgba(0,0,0,.35); }
.bb-vi-pin-lbl { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; background: var(--bb-forest); color: var(--bb-cream); padding: 4px 8px; border-radius: 3px; }

@media (max-width: 960px) {
  .bb-vi-grid { grid-template-columns: 1fr; }
}

/* HP CTA Strip */
.bb-cta {
  background: var(--bb-ochre);
  color: var(--bb-forest-ink);
  padding: 80px 0;
  font-family: "Inter", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.bb-ct-inner {
  max-width: 1240px; margin: 0 auto; padding: 0 32px;
  display: grid; grid-template-columns: 1.3fr auto; gap: 40px; align-items: center;
}
.bb-ct-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(40px, 4.6vw, 64px); line-height: .95; letter-spacing: -.025em; margin: 0; color: var(--bb-forest-ink);
}
.bb-ct-h2 em { font-style: italic; font-weight: 300; }
.bb-cta p { margin: 10px 0 0; font-size: 15.5px; max-width: 520px; opacity: .85; }
.bb-ct-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 18px 28px; border-radius: 999px; font-weight: 500; font-size: 15px; letter-spacing: .02em;
  background: var(--bb-forest); color: #f3ecdc;
  text-decoration: none; transition: transform .15s ease, background .2s ease;
  white-space: nowrap;
}
.bb-ct-btn:hover { transform: translateY(-1px); background: var(--bb-forest-deep); }

@media (max-width: 960px) {
  .bb-ct-inner { grid-template-columns: 1fr; }
}

/* ------ MEMBERSHIPS ------ */
/* generic unprefixed kit kept as-is; tokens + reset hoisted to top */

  .serif{font-family:"Fraunces",serif;font-optical-sizing:auto;font-variation-settings:"SOFT" 50,"WONK" 0}
  .mono{font-family:"JetBrains Mono",ui-monospace,monospace}
  .container{max-width:1240px;margin:0 auto;padding:0 32px}

  .eyebrow{
    font-family:"JetBrains Mono",monospace;
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;
    display:inline-flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:18px;height:1px;background:currentColor;display:inline-block}

  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 22px;border-radius:999px;
    font-weight:500;font-size:14px;letter-spacing:.02em;
    border:1px solid transparent;cursor:pointer;text-decoration:none;
    transition:transform .15s ease,background .2s ease,color .2s ease;
  }
  .btn:hover{transform:translateY(-1px)}
  .btn-primary{background:var(--ochre);color:var(--forest-ink)}
  .btn-primary:hover{background:var(--ochre-soft)}
  .btn-ghost{background:transparent;color:var(--cream);border-color:rgba(243,236,220,.35)}
  .btn-ghost:hover{background:rgba(243,236,220,.08)}
  .btn-ink{background:var(--forest);color:var(--cream)}
  .btn-ink:hover{background:var(--forest-deep)}
  .btn-outline{background:transparent;color:var(--forest);border-color:rgba(20,26,22,.25)}
  .btn-outline:hover{background:rgba(20,26,22,.05)}

  .section-label{
    display:flex;align-items:baseline;gap:18px;
    font-family:"JetBrains Mono",monospace;
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;
    color:var(--forest);margin-bottom:28px;
  }
  .section-num{
    font-family:"Fraunces",serif;font-style:italic;font-size:14px;
    color:var(--ochre);letter-spacing:0;text-transform:none;
  }


  /* ---------- HERO ---------- */
  .hero{
    background:var(--forest);color:var(--cream);
    position:relative;overflow:hidden;padding:72px 0 60px;
  }
  .hero::before{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(circle at 1px 1px,rgba(243,236,220,.07) 1px,transparent 0);
    background-size:22px 22px;pointer-events:none;z-index:0;
  }
  .hero .container{position:relative;z-index:1}

  .hero-grid{
    display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:end;
  }
  .hero h1{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(56px,7.2vw,108px);line-height:.94;letter-spacing:-.032em;
    margin:28px 0 0;
    font-variation-settings:"SOFT" 100,"WONK" 1,"opsz" 144;
  }
  .hero h1 em{font-style:italic;font-weight:300;color:var(--ochre-soft)}
  .hero-sub{
    font-size:18px;line-height:1.55;max-width:520px;opacity:.85;margin-top:28px;
  }
  .hero-ctas{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
  .hero-fine{
    margin-top:18px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.55;
  }
  .hero-fine em{font-family:"Fraunces",serif;font-style:italic;font-size:14px;letter-spacing:0;text-transform:none;color:var(--ochre-soft);font-weight:400}
  .heroImage {
      height: 100%;
  }
  .elementor img {
      border-radius:20px !important;
  }


  .hero-meta{
    display:grid;grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--line-cream);margin-top:64px;
  }
  .hero-meta > div{padding:24px 20px 28px;border-right:1px solid var(--line-cream)}
  .hero-meta > div:last-child{border-right:none}
  .hero-meta .k{font-family:"Fraunces",serif;font-size:44px;line-height:1;font-weight:500;letter-spacing:-.02em}
  .hero-meta .k em{font-style:italic;font-weight:300;color:var(--ochre-soft);font-size:.6em;margin-left:4px}
  .hero-meta .l{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;margin-top:10px;opacity:.7}

  /* ---------- WHAT'S INCLUDED ---------- */
  .perks{background:var(--bone);padding:120px 0 100px}
  .perks-head{
    display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:end;margin-bottom:64px;
  }
  .perks-head h2{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(44px,5.4vw,80px);line-height:.95;letter-spacing:-.028em;margin:0;
  }
  .perks-head h2 em{font-style:italic;font-weight:300;color:var(--forest)}
  .perks-head .lede{font-size:17px;line-height:1.6;color:#2c3831;max-width:520px}
  .perks-head .lede em{font-style:italic;color:var(--ochre);font-family:"Fraunces",serif;font-weight:400}

  .perk-list{display:grid;gap:16px}
  .perk{
    background:var(--cream);color:var(--ink);
    border-radius:12px;overflow:hidden;
    display:grid;grid-template-columns:140px 1.4fr 1fr auto;
    border:1px solid var(--line);
    transition:transform .25s ease;
  }
  .perk:hover{transform:translateY(-2px)}
  .perk .num{
    background:var(--forest);color:var(--cream);
    padding:30px 22px;display:flex;flex-direction:column;justify-content:center;
    border-right:1px dashed var(--line-cream);position:relative;
  }
  .perk .num::before,.perk .num::after{
    content:"";position:absolute;right:-9px;width:16px;height:16px;border-radius:50%;background:var(--bone);
  }
  .perk .num::before{top:-8px}
  .perk .num::after{bottom:-8px}
  .perk .num .m{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
  .perk .num .d{font-family:"Fraunces",serif;font-size:54px;line-height:1;font-weight:500;letter-spacing:-.02em;margin-top:4px}
  .perk .num .d em{font-style:italic;font-weight:300;color:var(--ochre-soft)}
  .perk .num .t{font-size:11px;margin-top:10px;opacity:.7;letter-spacing:.04em}

  .perk .body{padding:28px 30px;display:flex;flex-direction:column;justify-content:center}
  .perk .body h4{font-family:"Fraunces",serif;font-size:30px;font-weight:500;margin:0;letter-spacing:-.018em;line-height:1.05}
  .perk .body h4 em{font-style:italic;font-weight:300;color:var(--ochre)}
  .perk .body p{margin:10px 0 0;font-size:14.5px;color:#3a443d;line-height:1.55;max-width:48ch}

  .perk .meta{
    padding:28px 26px;display:flex;flex-direction:column;justify-content:center;gap:8px;
    font-size:13px;color:#3a443d;border-left:1px solid var(--line);
  }
  .perk .meta .tag{
    display:inline-flex;align-items:center;gap:6px;
    font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;
    color:var(--forest);
  }
  .perk .meta .tag::before{content:"●";color:var(--ochre);font-size:10px}
  .perk .meta em{font-family:"Fraunces",serif;font-style:italic;color:var(--forest);font-weight:400}

  .perk .stat{
    padding:28px 30px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;
    border-left:1px dashed var(--line);min-width:160px;text-align:right;
  }
  .perk .stat .v{font-family:"Fraunces",serif;font-size:64px;font-weight:500;letter-spacing:-.03em;line-height:.85}
  .perk .stat .v em{font-style:italic;font-weight:300;color:var(--ochre);font-size:.5em;margin-left:4px}
  .perk .stat .k{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#4a544d;margin-top:8px}

 
 

  /* ---------- FAQ ---------- */
  .faq{background:var(--cream);color:var(--forest);padding:120px 0}
  .faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
  .faq h2{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(44px,5vw,72px);line-height:.95;letter-spacing:-.028em;margin:10px 0 0;
  }
  .faq h2 em{font-style:italic;color:var(--ochre-soft);font-weight:300}
  .faq-aside p{opacity:.75;font-size:15px;max-width:320px;margin-top:20px}
  details.q{border-top:1px solid var(--line);padding:20px 0}
  details.q:first-of-type {border:none; }
  details.q:last-of-type{border-bottom:1px solid var(--line)}
  details.q summary{
    list-style:none;cursor:pointer;
    display:flex;justify-content:space-between;align-items:center;gap:20px;
    font-family:"Fraunces",serif;font-size:22px;font-weight:500;letter-spacing:-.01em;
  }
  details.q summary::-webkit-details-marker{display:none}
  details.q summary em{font-style:italic;font-weight:400;color:var(--ochre-soft)}
  details.q summary .ql{display:flex;align-items:baseline;gap:18px;flex:1}
  details.q summary .n{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;opacity:.55;font-weight:400}
  details.q summary .plus{
    width:28px;height:28px;border-radius:50%;border:1px solid var(--cream);
    display:grid;place-items:center;font-size:18px;opacity:.7;transition:transform .25s;flex-shrink:0;
  }
  details.q[open] summary .plus{transform:rotate(45deg);background:var(--ochre);color:var(--forest-ink);border-color:var(--ochre)}
  details.q .a{padding-top:14px;font-size:15px;line-height:1.6;opacity:.8;max-width:640px}
  details.q .a em{font-style:italic;color:var(--ochre-soft);font-family:"Fraunces",serif;font-weight:400}

  /* ---------- CTA STRIP ---------- */
  .cta-strip{background:var(--ochre);color:var(--forest-ink);padding:80px 0}
  .cta-inner{display:grid;grid-template-columns:1.3fr auto;gap:40px;align-items:center}
  .cta-inner h2{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(40px,4.6vw,64px);line-height:.95;letter-spacing:-.025em;margin:0;
  }
  .cta-inner h2 em{font-style:italic;font-weight:300}
  .cta-inner p{margin:10px 0 0;font-size:15.5px;max-width:520px;opacity:.85}


  /* -------- LESSONS ------- */
  /* generic unprefixed kit kept as-is; tokens + reset hoisted to top */

  .serif{font-family:"Fraunces",serif;font-optical-sizing:auto;font-variation-settings:"SOFT" 50,"WONK" 0}
  .mono{font-family:"JetBrains Mono",ui-monospace,monospace}
  .container{max-width:1240px;margin:0 auto;padding:0 32px}

  .eyebrow{
    font-family:"JetBrains Mono",monospace;
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;
    display:inline-flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:18px;height:1px;background:currentColor;display:inline-block}

  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 22px;border-radius:999px;
    font-weight:500;font-size:14px;letter-spacing:.02em;
    border:1px solid transparent;cursor:pointer;text-decoration:none;
    transition:transform .15s ease,background .2s ease,color .2s ease;
  }
  .btn:hover{transform:translateY(-1px)}
  .btn-primary{background:var(--ochre);color:var(--forest-ink)}
  .btn-primary:hover{background:var(--ochre-soft)}
  .btn-ghost{background:transparent;color:var(--cream);border-color:rgba(243,236,220,.35)}
  .btn-ghost:hover{background:rgba(243,236,220,.08)}
  .btn-ink{background:var(--forest);color:var(--cream)}
  .btn-ink:hover{background:var(--forest-deep)}
  .btn-outline{background:transparent;color:var(--forest);border-color:rgba(20,26,22,.25)}
  .btn-outline:hover{background:rgba(20,26,22,.05)}

  .section-label{
    display:flex;align-items:baseline;gap:18px;
    font-family:"JetBrains Mono",monospace;
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;
    color:var(--forest);margin-bottom:28px;
  }
  .section-num{
    font-family:"Fraunces",serif;font-style:italic;font-size:14px;
    color:var(--ochre);letter-spacing:0;text-transform:none;
  }


  /* ---------- HERO ---------- */
  .hero{
    background:var(--forest);color:var(--cream);
    position:relative;overflow:hidden;padding:150px 0 150px;
  }
  .hero::before{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(circle at 1px 1px,rgba(243,236,220,.07) 1px,transparent 0);
    background-size:22px 22px;pointer-events:none;z-index:0;
  }
  .hero .container{position:relative;z-index:1}

  .hero-grid{
    display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:end;
  }
  .hero h1{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(56px,7.2vw,108px);line-height:.94;letter-spacing:-.032em;
    margin:28px 0 0;
    font-variation-settings:"SOFT" 100,"WONK" 1,"opsz" 144;
  }
  .hero h1 em{font-style:italic;font-weight:300;color:var(--ochre-soft)}
  .hero-sub{
    font-size:18px;line-height:1.55;max-width:520px;opacity:.85;margin-top:28px;
  }
  .hero-ctas{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
  .hero-fine{
    margin-top:18px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.55;
  }
  .hero-fine em{font-family:"Fraunces",serif;font-style:italic;font-size:14px;letter-spacing:0;text-transform:none;color:var(--ochre-soft);font-weight:400}
  .heroImage {
      height: 100%;
  }
  .elementor img {
      border-radius:20px !important;
  }


  .hero-meta{
    display:grid;grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line-cream);margin-top:64px;
  }
  .hero-meta > div{padding:24px 20px 28px;border-right:1px solid var(--line-cream)}
  .hero-meta > div:last-child{border-right:none}
  .hero-meta .k{font-family:"Fraunces",serif;font-size:44px;line-height:1;font-weight:500;letter-spacing:-.02em}
  .hero-meta .k em{font-style:italic;font-weight:300;color:var(--ochre-soft);font-size:.6em;margin-left:4px}
  .hero-meta .l{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;margin-top:10px;opacity:.7}

  /* ---------- WHAT'S INCLUDED ---------- */
  .perks{background:var(--bone);padding:120px 0 0px}
  .perks-head{
    display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:end;margin-bottom:64px;
  }
  .perks-head h2{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(44px,5.4vw,80px);line-height:.95;letter-spacing:-.028em;margin:0;
  }
  .perks-head h2 em{font-style:italic;font-weight:300;color:var(--forest)}
  .perks-head .lede{font-size:17px;line-height:1.6;color:#2c3831;max-width:520px; padding-bottom:0 !important; margin-bottom:0;}
  .perks-head .lede em{font-style:italic;color:var(--ochre);font-family:"Fraunces",serif;font-weight:400}

  .perk-list{display:grid;gap:16px}
  .perk{
    background:var(--cream);color:var(--ink);
    border-radius:12px;overflow:hidden;
    display:grid;grid-template-columns:140px 1.4fr 1fr auto;
    border:1px solid var(--line);
    transition:transform .25s ease;
  }
  .perk:hover{transform:translateY(-2px)}
  .perk .num{
    background:var(--forest);color:var(--cream);
    padding:30px 22px;display:flex;flex-direction:column;justify-content:center;
    border-right:1px dashed var(--line-cream);position:relative;
  }
  .perk .num::before,.perk .num::after{
    content:"";position:absolute;right:-9px;width:16px;height:16px;border-radius:50%;background:var(--bone);
  }
  .perk .num::before{top:-8px}
  .perk .num::after{bottom:-8px}
  .perk .num .m{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
  .perk .num .d{font-family:"Fraunces",serif;font-size:54px;line-height:1;font-weight:500;letter-spacing:-.02em;margin-top:4px}
  .perk .num .d em{font-style:italic;font-weight:300;color:var(--ochre-soft)}
  .perk .num .t{font-size:11px;margin-top:10px;opacity:.7;letter-spacing:.04em}

  .perk .body{padding:28px 30px;display:flex;flex-direction:column;justify-content:center}
  .perk .body h4{font-family:"Fraunces",serif;font-size:30px;font-weight:500;margin:0;letter-spacing:-.018em;line-height:1.05}
  .perk .body h4 em{font-style:italic;font-weight:300;color:var(--ochre)}
  .perk .body p{margin:10px 0 0;font-size:14.5px;color:#3a443d;line-height:1.55;max-width:48ch}

  .perk .meta{
    padding:28px 26px;display:flex;flex-direction:column;justify-content:center;gap:8px;
    font-size:13px;color:#3a443d;border-left:1px solid var(--line);
  }
  .perk .meta .tag{
    display:inline-flex;align-items:center;gap:6px;
    font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;
    color:var(--forest);
  }
  .perk .meta .tag::before{content:"●";color:var(--ochre);font-size:10px}
  .perk .meta em{font-family:"Fraunces",serif;font-style:italic;color:var(--forest);font-weight:400}

  .perk .stat{
    padding:28px 30px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;
    border-left:1px dashed var(--line);min-width:160px;text-align:right;
  }
  .perk .stat .v{font-family:"Fraunces",serif;font-size:64px;font-weight:500;letter-spacing:-.03em;line-height:.85}
  .perk .stat .v em{font-style:italic;font-weight:300;color:var(--ochre);font-size:.5em;margin-left:4px}
  .perk .stat .k{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#4a544d;margin-top:8px}

 /* -------- Instructors --------- */
 .instructor_name {
      font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(48px,5vw,36px);line-height:.95;letter-spacing:-.028em;margin:10px 0 0;
 }
  .instructor_location {
      font-size:18px; font-weight:200; line-height:1.6;color:var(--ochre);max-width:520px 
 }
 .instructor_bio  { font-size:17px;line-height:1.6;color:#2c3831;max-width:520px }
 
 .bb-in-photo {
     display:none !important;
 }
.bb-in-card { grid-template-columns:2fr !important; }

  /* ---------- FAQ ---------- */
  .faq{background:var(--forest);color:var(--cream);padding:120px 0}
  .faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
  .faq h2{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(44px,5vw,72px);line-height:.95;letter-spacing:-.028em;margin:10px 0 0;
  }
  .faq h2 em{font-style:italic;color:var(--ochre-soft);font-weight:300}
  .faq-aside p{opacity:.75;font-size:15px;max-width:320px;margin-top:20px}
  details.q{border-top:1px solid var(--line-cream);padding:20px 0}
  details.q:last-of-type{border-bottom:1px solid var(--line-cream)}
  details.q summary{
    list-style:none;cursor:pointer;
    display:flex;justify-content:space-between;align-items:center;gap:20px;
    font-family:"Fraunces",serif;font-size:22px;font-weight:500;letter-spacing:-.01em;
  }
  details.q summary::-webkit-details-marker{display:none}
  details.q summary em{font-style:italic;font-weight:400;color:var(--ochre-soft)}
  details.q summary .ql{display:flex;align-items:baseline;gap:18px;flex:1}
  details.q summary .n{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;opacity:.55;font-weight:400}
  details.q summary .plus{
    width:28px;height:28px;border-radius:50%;border:1px solid var(--cream);
    display:grid;place-items:center;font-size:18px;opacity:.7;transition:transform .25s;flex-shrink:0;
  }
  details.q[open] summary .plus{transform:rotate(45deg);background:var(--ochre);color:var(--forest-ink);border-color:var(--ochre)}
  details.q .a{padding-top:14px;font-size:15px;line-height:1.6;opacity:.8;max-width:640px}
  details.q .a em{font-style:italic;color:var(--ochre-soft);font-family:"Fraunces",serif;font-weight:400}

  /* ---------- CTA STRIP ---------- */
  .cta-strip{background:var(--ochre);color:var(--forest-ink);padding:80px 0}
  .cta-inner{display:grid;grid-template-columns:1.3fr auto;gap:40px;align-items:center}
  .cta-inner h2{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(40px,4.6vw,64px);line-height:.95;letter-spacing:-.025em;margin:0;
  }
  .cta-inner h2 em{font-style:italic;font-weight:300}
  .cta-inner p{margin:10px 0 0;font-size:15.5px;max-width:520px;opacity:.85}


/* -------- FRANCHISE ------- */

/* Franchise Hero */
/* generic unprefixed kit kept as-is; tokens + reset hoisted to top */
  .serif{font-family:"Fraunces",serif;font-optical-sizing:auto;font-variation-settings:"SOFT" 50,"WONK" 0}
  .mono{font-family:"JetBrains Mono",ui-monospace,monospace}
  .container{max-width:1240px;margin:0 auto;padding:0 32px}

  .eyebrow{
    font-family:"JetBrains Mono",monospace;
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;
    display:inline-flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:18px;height:1px;background:currentColor;display:inline-block}

  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 22px;border-radius:999px;
    font-weight:500;font-size:14px;letter-spacing:.02em;
    border:1px solid transparent;cursor:pointer;text-decoration:none;
    transition:transform .15s ease,background .2s ease,color .2s ease;
  }
  .btn:hover{transform:translateY(-1px)}
  .btn-primary{background:var(--ochre);color:var(--forest-ink)}
  .btn-primary:hover{background:var(--ochre-soft)}
  .btn-ghost{background:transparent;color:var(--cream);border-color:rgba(243,236,220,.35)}
  .btn-ghost:hover{background:rgba(243,236,220,.08)}
  .btn-ink{background:var(--forest);color:var(--cream)}
  .btn-ink:hover{background:var(--forest-deep)}
  .btn-outline{background:transparent;color:var(--forest);border-color:rgba(20,26,22,.25)}
  .btn-outline:hover{background:rgba(20,26,22,.05)}

  .section-label{
    display:flex;align-items:baseline;gap:18px;
    font-family:"JetBrains Mono",monospace;
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;
    color:var(--forest);margin-bottom:28px;
  }
  .section-num{
    font-family:"Fraunces",serif;font-style:italic;font-size:14px;
    color:var(--ochre);letter-spacing:0;text-transform:none;
  }

     .hero{
    background:var(--forest);color:var(--cream);
    position:relative;overflow:hidden;padding:150px 0 150px;
  }
  .hero::before{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(circle at 1px 1px,rgba(243,236,220,.07) 1px,transparent 0);
    background-size:22px 22px;pointer-events:none;z-index:0;
  }
  .hero .container{position:relative;z-index:1}

  .hero-grid{
    display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:end;
  }
  .hero h1{
    font-family:"Fraunces",serif;font-weight:400;
    font-size:clamp(56px,7.2vw,108px);line-height:.94;letter-spacing:-.032em;
    margin:28px 0 0;
    font-variation-settings:"SOFT" 100,"WONK" 1,"opsz" 144;
  }
  .hero h1 em{font-style:italic;font-weight:300;color:var(--ochre-soft)}
  .hero-sub{
    font-size:18px;line-height:1.55;max-width:520px;opacity:.85;margin-top:28px;
  }
  .hero-ctas{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
  .hero-fine{
    margin-top:18px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.55;
  }
  .hero-fine em{font-family:"Fraunces",serif;font-style:italic;font-size:14px;letter-spacing:0;text-transform:none;color:var(--ochre-soft);font-weight:400}
  .heroImage {
      height: 100%;
  }
  .elementor img {
      border-radius:20px !important;
  }


  .hero-meta{
    display:grid;grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line-cream);margin-top:64px;
  }
  .hero-meta > div{padding:24px 20px 28px;border-right:1px solid var(--line-cream)}
  .hero-meta > div:last-child{border-right:none}
  .hero-meta .k{font-family:"Fraunces",serif;font-size:44px;line-height:1;font-weight:500;letter-spacing:-.02em}
  .hero-meta .k em{font-style:italic;font-weight:300;color:var(--ochre-soft);font-size:.6em;margin-left:4px}
  .hero-meta .l{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;margin-top:10px;opacity:.7}

/* Franchise Operators */
.bb-fr-ideal-section {
  padding: 120px 0; background: var(--fr-cream);
  position: relative; overflow: hidden;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  color: var(--fr-ink);
}
.bb-fr-ideal-section::before {
  content: ""; position: absolute; top: -200px; right: -200px; width: 520px; height: 520px; border-radius: 50%;
  border: 1px dashed rgba(31,61,48,.18); pointer-events: none;
}
.bb-fr-ideal-section::after {
  content: ""; position: absolute; top: -100px; right: -100px; width: 320px; height: 320px; border-radius: 50%;
  border: 1px dashed rgba(31,61,48,.22); pointer-events: none;
}

.bb-fr-ideal-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1; }

.bb-fr-ideal-sec-head { margin-bottom: 44px; }
.bb-fr-ideal-sec-kicker {
  font-family: "JetBrains Mono", monospace;
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--fr-forest); margin-bottom: 20px;
  display: inline-flex; gap: 10px; align-items: center;
}
.bb-fr-ideal-sec-num {
  font-family: "Fraunces", serif; font-style: italic; font-size: 14px;
  color: var(--fr-ochre); letter-spacing: 0; text-transform: none;
}
.bb-fr-ideal-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(40px, 5vw, 68px); line-height: .95; letter-spacing: -.026em;
  margin: 0; max-width: 900px;
}
.bb-fr-ideal-h2 em { font-style: italic; font-weight: 300; color: var(--fr-ochre); }

.bb-fr-ideal-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: start; }

.bb-fr-ideal-lede {
  font-family: "Fraunces", serif; font-size: 22px; line-height: 1.4; color: #2c3831; margin: 0 0 28px; max-width: 46ch;
}
.bb-fr-ideal-lede em { font-style: italic; color: var(--fr-ochre); }

.bb-fr-ideal-check-list { display: flex; flex-direction: column; gap: 2px; }
.bb-fr-ideal-row {
  display: grid; grid-template-columns: 44px 1fr auto; gap: 18px; align-items: baseline;
  padding: 18px 0; border-bottom: 1px dotted rgba(20,26,22,.2);
}
.bb-fr-ideal-row:last-child { border-bottom: none; }
.bb-fr-ideal-n { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .15em; color: var(--fr-ochre); padding-top: 3px; }
.bb-fr-ideal-t { font-family: "Fraunces", serif; font-size: 19px; font-weight: 500; letter-spacing: -.005em; color: var(--fr-ink); }
.bb-fr-ideal-t span { display: block; font-family: "Inter", sans-serif; font-size: 13.5px; font-weight: 400; color: #4a544d; margin-top: 4px; line-height: 1.5; }
.bb-fr-ideal-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--fr-forest); transform: translateY(6px); }

.bb-fr-ideal-profile-card {
  position: relative; background: var(--fr-forest); color: var(--fr-cream);
  border-radius: 2px; padding: 40px 36px;
}
.bb-fr-ideal-pc-label { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--fr-ochre-soft); margin-bottom: 20px; display: block; }
.bb-fr-ideal-profile-card blockquote {
  font-family: "Fraunces", serif; font-weight: 400; font-size: 26px; line-height: 1.35; letter-spacing: -.008em;
  margin: 0 0 28px;
}
.bb-fr-ideal-profile-card blockquote em { font-style: italic; color: var(--fr-ochre-soft); font-weight: 300; }
.bb-fr-ideal-cite {
  display: flex; align-items: center; gap: 14px; padding-top: 20px; border-top: 1px solid var(--fr-line-cream);
}
.bb-fr-ideal-avatar {
  width: 52px; height: 52px; border-radius: 50%;
  background: linear-gradient(135deg, #a9c09b, #6c8a5f);
  border: 1px solid var(--fr-line-cream); flex-shrink: 0;
  position: relative; overflow: hidden;
}
.bb-fr-ideal-avatar::after {
  content: "DR"; position: absolute; inset: 0; display: grid; place-items: center;
  font-family: "Fraunces", serif; font-size: 16px; color: var(--fr-forest-ink); font-weight: 600;
}
.bb-fr-ideal-name { font-family: "Fraunces", serif; font-size: 17px; font-weight: 500; }
.bb-fr-ideal-meta { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .14em; opacity: .65; text-transform: uppercase; margin-top: 2px; }
.bb-fr-ideal-profile-stamp {
  position: absolute; top: -18px; right: -14px; width: 86px; height: 86px; border-radius: 50%;
  background: var(--fr-ochre); color: var(--fr-forest-ink);
  display: grid; place-items: center; text-align: center;
  font-family: "Fraunces", serif; font-size: 12px; line-height: 1.15; font-weight: 600;
  letter-spacing: .02em; transform: rotate(8deg);
  box-shadow: 0 6px 20px -6px rgba(0,0,0,.35);
}

@media (max-width: 960px) {
  .bb-fr-ideal-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* Franchise Needs */
.bb-fr-have-section {
  padding: 120px 0 0; background: var(--fr-bone);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  color: var(--fr-ink);
}
.bb-fr-have-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }

.bb-fr-have-sec-head { margin-bottom: 44px; }
.bb-fr-have-sec-kicker {
  font-family: "JetBrains Mono", monospace;
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--fr-forest); margin-bottom: 20px;
  display: inline-flex; gap: 10px; align-items: center;
}
.bb-fr-have-sec-num {
  font-family: "Fraunces", serif; font-style: italic; font-size: 14px;
  color: var(--fr-ochre); letter-spacing: 0; text-transform: none;
}
.bb-fr-have-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(40px, 5vw, 68px); line-height: .95; letter-spacing: -.026em;
  margin: 0; max-width: 900px;
}
.bb-fr-have-h2 em { font-style: italic; font-weight: 300; color: var(--fr-forest); }

.bb-fr-have-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  border-top: 1px solid var(--fr-line); border-left: 1px solid var(--fr-line);
  margin-top: 8px;
}
.bb-fr-have-pillar {
  padding: 36px 32px 40px;
  border-right: 1px solid var(--fr-line); border-bottom: 1px solid var(--fr-line);
  position: relative; display: flex; flex-direction: column; gap: 14px;
}
.bb-fr-have-pn {
  font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--fr-ochre);
}
.bb-fr-have-pi {
  width: 46px; height: 46px; border: 1px solid var(--fr-forest); border-radius: 50%;
  display: grid; place-items: center; color: var(--fr-forest); margin-bottom: 4px;
}
.bb-fr-have-pillar h3 {
  font-family: "Fraunces", serif; font-weight: 500; font-size: 42px; letter-spacing: -.01em;
  margin: 0; line-height: 1.15;
}
.bb-fr-have-pillar p { font-size: 14.5px; line-height: 1.55; color: #3a4740; margin: 0; }
.bb-fr-have-tag {
  font-family: "JetBrains Mono", monospace; font-size: 16px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--fr-ochre); opacity: 1; margin-top: auto; padding-top: 6px;
}
.bb-fr-give-section {
  padding: 120px 0; background: var(--fr-bone);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  color: var(--fr-ink);
}
.bb-fr-give-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }

.bb-fr-give-sec-head { margin-bottom: 44px; }
.bb-fr-give-sec-kicker {
  font-family: "JetBrains Mono", monospace;
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--fr-forest); margin-bottom: 20px;
  display: inline-flex; gap: 10px; align-items: center;
}
.bb-fr-give-sec-num {
  font-family: "Fraunces", serif; font-style: italic; font-size: 14px;
  color: var(--fr-ochre); letter-spacing: 0; text-transform: none;
}
.bb-fr-give-h2 {
  font-family: "Fraunces", serif; font-weight: 400;
  font-size: clamp(40px, 5vw, 68px); line-height: .95; letter-spacing: -.026em;
  margin: 0; max-width: 900px;
}
.bb-fr-give-h2 em { font-style: italic; font-weight: 300; color: var(--fr-forest); }

.bb-fr-give-grid {
  display: grid; grid-template-columns: repeat(1, 1fr); gap: 0;
  border-top: 1px solid var(--fr-line); border-left: 1px solid var(--fr-line);
  margin-top: 8px;
}
.bb-fr-give-pillar {
  padding: 36px 32px 40px;
  border-right: 1px solid var(--fr-line); border-bottom: 1px solid var(--fr-line);
  position: relative; display: flex; flex-direction: column; gap: 14px;
}
.bb-fr-give-pn {
  font-family: "Fraunces", serif; font-style: italic; font-size: 14px; color: var(--fr-ochre);
}
.bb-fr-give-pi {
  width: 46px; height: 46px; border: 1px solid var(--fr-ochre); border-radius: 50%;
  display: grid; place-items: center; color: var(--fr-ochre); margin-bottom: 4px;
}
.bb-fr-give-pillar h3 {
  font-family: "Fraunces", serif; font-weight: 500; font-size: 24px; letter-spacing: -.01em;
  margin: 0; line-height: 1.15;
}
.bb-fr-give-pillar p { font-size: 14.5px; line-height: 1.55; color: #3a4740; margin: 0; }
.bb-fr-give-tag {
  font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--fr-forest); opacity: .65; margin-top: auto; padding-top: 6px;
}


@media (max-width: 960px) {
  .bb-fr-give-grid { grid-template-columns: 1fr; }
}

/* ------- FOOTER ------- */
.bb-foot {
  background: var(--bb-forest-deep);
  color: var(--bb-cream);
  padding: 80px 0 30px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
.bb-ft-container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }

.bb-ft-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px;
  border-bottom: 1px solid var(--bb-line-cream); padding-bottom: 48px;
}
.bb-ft-brand { display: flex; align-items: center; gap: 12px; font-family: "Fraunces", serif; font-weight: 600; font-size: 22px; color: var(--bb-cream); }
.bb-ft-brand img { width:140px; border-radius:0 !important; }
.bb-ft-mark {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--bb-cream); color: var(--bb-forest-deep);
  display: grid; place-items: center; font-weight: 700; font-size: 15px;
  position: relative; flex-shrink: 0;
}
.bb-ft-mark::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; border: 1px dashed var(--bb-forest-deep); opacity: .35; }
.bb-ft-sig { font-family: "Fraunces", serif; font-size: clamp(48px, 6vw, 88px); line-height: .9; font-weight: 300; font-style: italic; margin: 16px 0 0; letter-spacing: -.02em; }

.bb-foot h4 { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; margin: 0 0 18px; opacity: .65; font-weight: 400; }
.bb-foot a { color: var(--bb-cream); opacity: .8; text-decoration: none; display: block; padding: 4px 0; font-size: 14px; }
.bb-foot a:hover { opacity: 1; }

.bb-ft-bottom {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 24px; font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .12em; opacity: .6;
}

@media (max-width: 960px) {
  .bb-ft-grid { grid-template-columns: 1fr 1fr; }
  .bb-ft-grid > div:first-child { grid-column: 1 / -1; }
}

/* ------- GRAVITY FORMS ------- */
.gform_wrapper form { margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 0; }
.gform_wrapper .gform_body { margin: 0 !important; padding: 0 !important; }
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer,
[class*="gform-theme"] .gform_footer,
[class*="gform-theme"] .gform_page_footer { margin-block-start: 0 !important; margin-top: 0 !important; }

.gform_wrapper {
  --bb-forest: #1f3d30; --bb-forest-deep: #13281f; --bb-forest-ink: #0c1d16;
  --bb-cream: #f3ecdc; --bb-bone: #faf5e8; --bb-ochre: #c9923e;
  --bb-ochre-soft: #e3b366; --bb-ink: #141a16; --bb-line: rgba(20,26,22,.14); --bb-rust: #a24a2a;
  font-family: "Inter", system-ui, sans-serif; font-size: 16px; line-height: 1.55;
  color: var(--bb-ink); -webkit-font-smoothing: antialiased;
  width: 100%; max-width: 1180px; margin: 0 auto;
}
.gform_wrapper *, .gform_wrapper *::before, .gform_wrapper *::after { box-sizing: border-box; }

.gform_wrapper .gform_heading { margin: 0 0 28px; }
.gform_wrapper .gform_title { font-family: "Fraunces", serif; font-weight: 400; font-size: clamp(34px, 4vw, 56px); line-height: .98; letter-spacing: -.026em; margin: 0; }
.gform_wrapper .gform_description { display: block; font-size: 16px; color: #3a4740; line-height: 1.65; margin-top: 14px; max-width: 56ch; }

.gform_wrapper .gform_fields {
  background: var(--bb-cream); border: 1px solid var(--bb-line); border-bottom: none;
  border-radius: 2px 2px 0 0; padding: 36px 40px;
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 16px; row-gap: 18px; align-items: start; margin: 0; list-style: none;
}
.gform_wrapper .gfield { margin: 0; padding: 0; }

.gform_wrapper .gsection { grid-column: 1 / -1; border: 0; padding: 0; margin: 4px 0 0; }
.gform_wrapper .bb-sec-b, .gform_wrapper .bb-sec-c { margin-top: 14px; padding-top: 28px; border-top: 1px dotted var(--bb-line); }
.gform_wrapper [class*="bb-sec-"]::before { display: block; margin-bottom: 12px; font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--bb-forest); }
.gform_wrapper .bb-sec-a::before { content: "Section A / 03"; }
.gform_wrapper .bb-sec-b::before { content: "Section B / 03"; }
.gform_wrapper .bb-sec-c::before { content: "Section C / 03"; }
.gform_wrapper .gsection_title { font-family: "Fraunces", serif; font-weight: 500; font-size: 26px; line-height: 1.2; letter-spacing: -.01em; color: var(--bb-ink); margin: 0 0 6px; }
.gform_wrapper .gsection_title em { font-style: italic; font-weight: 300; color: var(--bb-forest); }
.gform_wrapper .gsection_description { font-family: "Inter", sans-serif; font-size: 13.5px; color: #4a544d; line-height: 1.55; margin: 0; padding: 0; max-width: 60ch; }

.gform_wrapper .gfield_label { font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--bb-forest); display: block; margin: 0 0 6px; }
.gform_wrapper .gfield_required { color: var(--bb-rust); font-size: 9px; opacity: .8; margin-left: 6px; text-transform: uppercase; }
.gform_wrapper .gfield_description, .gform_wrapper .gfield_description.validation_message { font-family: "Inter", sans-serif; font-size: 11px; color: #6b7571; line-height: 1.5; margin: 6px 0 0; padding: 0; }

.gform_wrapper input[type="text"], .gform_wrapper input[type="email"], .gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"], .gform_wrapper input[type="number"], .gform_wrapper input[type="password"],
.gform_wrapper select, .gform_wrapper textarea {
  font-family: "Inter", sans-serif; font-size: 15px; color: var(--bb-ink);
  background-color: var(--bb-bone); border: 1px solid rgba(20,26,22,.18); border-radius: 2px;
  padding: 13px 14px; width: 100%; outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.gform_wrapper input[type="text"]:focus, .gform_wrapper input[type="email"]:focus, .gform_wrapper input[type="tel"]:focus,
.gform_wrapper input[type="url"]:focus, .gform_wrapper input[type="number"]:focus, .gform_wrapper input[type="password"]:focus,
.gform_wrapper select:focus, .gform_wrapper textarea:focus {
  border-color: var(--bb-forest); box-shadow: 0 0 0 3px rgba(31,61,48,.12); background-color: #fffaee;
}
.gform_wrapper ::placeholder { color: #8a948f; font-style: italic; }
.gform_wrapper textarea { min-height: 110px; resize: vertical; }
.gform_wrapper select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='none' stroke='%231f3d30' stroke-width='1.5' d='M1 1l4 4 4-4'/></svg>");
  background-repeat: no-repeat; background-position: right 14px center; padding-right: 34px;
}
.gform_wrapper .ginput_container { margin: 0; }

.gform_wrapper .gfield_radio { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.gform_wrapper .gfield_radio .gchoice { margin: 0; padding: 0; }
.gform_wrapper .gfield_radio .gfield-choice-input, .gform_wrapper .gfield_radio input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.gform_wrapper .gfield_radio .gchoice label { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 100%; margin: 0; padding: 12px 10px; border: 1px solid rgba(20,26,22,.18); border-radius: 2px; background: var(--bb-bone); cursor: pointer; font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--bb-ink); transition: all .15s ease; }
.gform_wrapper .gfield_radio .gchoice label:hover { border-color: var(--bb-forest); }
.gform_wrapper .gfield_radio input:checked + label { background: var(--bb-forest); color: var(--bb-cream); border-color: var(--bb-forest); }
.gform_wrapper .gfield_radio input:focus-visible + label { box-shadow: 0 0 0 3px rgba(31,61,48,.2); }

.gform_wrapper .gfield_checkbox .gchoice { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 14px; border: 1px solid rgba(20,26,22,.18); border-radius: 2px; background: var(--bb-bone); }
.gform_wrapper .gfield_checkbox input[type="checkbox"] { margin-top: 3px; width: auto; flex: none; accent-color: var(--bb-forest); }
.gform_wrapper .gfield_checkbox .gchoice label { font-family: "Inter", sans-serif; font-weight: 400; font-size: 13.5px; line-height: 1.45; letter-spacing: 0; text-transform: none; color: #3a4740; cursor: pointer; margin: 0; }

.gform_wrapper .bb-fine, .gform_wrapper .gfield.bb-fine { grid-column: 1 / -1; margin: 6px 0 0; padding-top: 18px; border-top: 1px dotted var(--bb-line); font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #6b7571; line-height: 1.55; max-width: 60ch; }

.gform_wrapper .gform_footer { margin: 0 !important; padding: 22px 40px; background: var(--bb-cream); border: 1px solid var(--bb-line); border-top: none; border-radius: 0 0 2px 2px; display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: wrap; }
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer button[type="submit"],
.gform_wrapper .gform_button {
  display: inline-flex !important; align-items: center !important; gap: 10px !important;
  padding: 21px 33px !important; border-radius: 999px !important;
  font-family: "Inter", sans-serif !important; font-weight: 500 !important;
  font-size: 21px !important; letter-spacing: .02em !important;
  background: var(--bb-ochre) !important; color: var(--bb-forest-ink) !important;
  border: 1px solid transparent !important; cursor: pointer !important;
  text-decoration: none !important; transition: transform .15s ease, background .2s ease !important;
  width: auto !important;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer button[type="submit"]:hover,
.gform_wrapper .gform_button:hover { background: var(--bb-ochre-soft) !important; transform: translateY(-1px) !important; }
.gform_wrapper .gform_ajax_spinner { margin-left: 12px; }

.gform_wrapper .gform_validation_errors { background: #fdf3ef; border: 1px solid var(--bb-rust); border-radius: 2px; color: var(--bb-rust); padding: 16px 20px; margin: 0 0 20px; box-shadow: none; }
.gform_wrapper .gform_validation_errors .gform_submission_error { font-family: "Fraunces", serif; font-weight: 500; font-size: 18px; color: var(--bb-rust); }
.gform_wrapper .gfield_error input, .gform_wrapper .gfield_error select, .gform_wrapper .gfield_error textarea { border-color: var(--bb-rust); }
.gform_wrapper .gfield_validation_message, .gform_wrapper .gfield_error .gfield_validation_message { background: none; border: 0; padding: 4px 0 0; margin: 0; color: var(--bb-rust); font-family: "JetBrains Mono", monospace; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; }
.gform_wrapper .gfield.gfield_error, .gform_wrapper .gfield_error.gfield--type-choice { background: transparent; border: 0; padding: 0; }

.gform_wrapper + .gform_confirmation_wrapper .gform_confirmation_message,
.gform_confirmation_wrapper .gform_confirmation_message { font-family: "Fraunces", serif; font-size: 22px; line-height: 1.3; color: var(--bb-forest); }

@media (max-width: 700px) {
  .gform_wrapper .gform_fields { padding: 26px 22px; }
  .gform_wrapper .gform_footer { padding: 18px 22px; }
  .gform_wrapper .gform_footer input[type="submit"], .gform_wrapper .gform_footer button, .gform_wrapper .gform_button { width: 100% !important; justify-content: center !important; }
}
@media (max-width: 600px) {
  .gform_wrapper .gform_fields > .gfield { grid-column: 1 / -1 !important; }
}
.gform_wrapper:not(.gravity-theme) .gform_fields { display: block; }
.gform_wrapper:not(.gravity-theme) .gform_fields::after { content: ""; display: table; clear: both; }
.gform_wrapper:not(.gravity-theme) .gfield { margin-bottom: 18px; }
.gform_wrapper:not(.gravity-theme) .gfield.gf_left_half { width: calc(50% - 8px); float: left; clear: left; }
.gform_wrapper:not(.gravity-theme) .gfield.gf_right_half { width: calc(50% - 8px); float: right; clear: right; }
@media (max-width: 600px) {
  .gform_wrapper:not(.gravity-theme) .gfield.gf_left_half,
  .gform_wrapper:not(.gravity-theme) .gfield.gf_right_half { width: 100%; float: none; }
}