@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Gentium+Plus:ital,wght@0,400;0,700;1,400&display=swap');

:root{
  --rm-bg:#FCFCFA;
  --rm-bg-footer:#F7F1EB;
  --rm-border:#E4E6DF;
  --rm-border-soft:#ECEDE7;
  --rm-text:#16201A;
  --rm-head:#2E2218;
  --rm-text-light:#8A8F86;
  --rm-white:#fff;
  --rm-link:#BC5128;
  --rm-link-hover:#9C411E;
  --rm-gold:#AF791B;
  --rm-gold-hover:#a6702a;
  /* "Free" events use a warm gold (kept distinct from the terracotta accent) */
  --rm-free:#AF791B;
  --rm-free-hover:#9a6a18;
  /* Brand accent = logo terracotta */
  --accent:#BC5128;
  --accent-hover:#9C411E;
  --accent-tint:rgba(188,81,40,.12);
  --rm-font-body:'Gentium Plus',Georgia,serif;
  --rm-font-heading:'Cormorant Garamond','Gentium Plus',serif;
  --rm-font-ui:'Roboto','DM Sans',system-ui,sans-serif;
  --rm-shadow-card:0 4px 24px rgba(14,13,14,.04);
  --rm-shadow-hover:0 12px 32px rgba(14,13,14,.08);
  --maxw:1180px;
  /* themeable tokens (overridden per mood) */
  --rm-text-soft:#3E463E;
  --rm-free-tint:rgba(175,121,27,.14);
  --rm-num:#c9cfc1;
  --rm-media-bg:#EBEEE6;
  --rm-chip-bg:rgba(22,32,26,.05);
  --rm-border-strong:#D2D6CB;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
.bk-page{
  background:var(--rm-bg);
  color:var(--rm-text);
  font-family:var(--rm-font-body);
  font-size:18px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.bk-page a{color:var(--rm-link);text-decoration:none;}
.bk-page img{max-width:100%;display:block;}

/* ============================ shared header ============================ */
.bk-top{
  background:var(--rm-bg);
  border-bottom:1px solid var(--rm-border);
}
.bk-top__inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:28px 30px 30px;
  text-align:center;
}
.bk-title{
  font-family:var(--rm-font-heading);
  font-weight:400;
  font-size:clamp(34px,4.6vw,46px);
  line-height:1.06;
  margin:0 0 12px;
  letter-spacing:.005em;
}
.bk-lede{
  max-width:560px;margin:0 auto;
  font-size:17px;line-height:1.6;color:var(--rm-text-soft);
}
.bk-lede em{font-style:italic;color:var(--accent);}
.bk-meta{
  margin-top:16px;
  font-family:var(--rm-font-ui);
  font-size:11.5px;text-transform:uppercase;letter-spacing:.14em;
  color:var(--rm-text-light);
  display:flex;gap:14px;justify-content:center;flex-wrap:wrap;align-items:center;
}
.bk-meta span:not(:last-child)::after{content:"·";margin-left:14px;color:var(--rm-border);}
.bk-meta a{color:inherit;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;}
.bk-meta a:hover{color:var(--accent);border-bottom-color:var(--accent);}

/* ---- Hero: Org (Eventbrite-style short banner + round logo) ---- */
.bk-top--org{background:var(--rm-bg);border-bottom:1px solid var(--rm-border-soft);}
.bk-top--org .bk-top__inner{max-width:var(--maxw);padding:24px 30px 38px;}
.bk-org__banner{
  height:clamp(190px,28vw,290px);border-radius:16px;overflow:hidden;background:var(--rm-media-bg);
}
.bk-org__banner img{width:100%;height:100%;object-fit:cover;object-position:center 60%;display:block;}
.bk-org__bar{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:-66px;}
.bk-org__avatar{
  width:128px;height:128px;border-radius:50%;border:5px solid var(--rm-bg);
  background:var(--rm-white);overflow:hidden;box-shadow:0 10px 28px rgba(14,13,14,.16);
}
.bk-org__avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.bk-top--org .bk-title{margin-top:16px;color:var(--rm-head);}
.bk-top--org .bk-lede{margin-top:12px;}
.bk-top--org .bk-meta{margin-top:16px;}
@media (max-width:680px){
  .bk-top--org .bk-top__inner{padding:18px 20px 30px;}
  .bk-org__banner{height:165px;border-radius:12px;}
  .bk-org__bar{margin-top:-50px;}
  .bk-org__avatar{width:96px;height:96px;border-width:4px;}
}

/* ============================ shared footer ============================ */
.bk-foot{
  background:var(--rm-bg-footer);
  border-top:1px solid #EADDD0;
  margin-top:8px;
}
.bk-foot__inner{
  max-width:var(--maxw);margin:0 auto;padding:30px 30px 26px;
  display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;
}
.bk-foot__badges{
  display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
}
.bk-foot__badges #b-circledLeaves27{
  transform:scale(.59);transform-origin:center;
  margin:-41px -38px;
}
.bk-foot__main{
  display:flex;flex-direction:column;gap:7px;align-items:center;text-align:center;min-width:0;
  font-family:var(--rm-font-ui);
}
.bk-foot__addr{
  font-family:var(--rm-font-ui);font-size:13.5px;letter-spacing:.01em;color:var(--rm-text-soft);
  transition:color .2s;
}
a.bk-foot__addr:hover{color:var(--accent);}
.bk-foot__lines{
  font-size:13px;letter-spacing:.01em;color:var(--rm-text-light);
  display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;
}
.bk-foot__lines a{color:var(--rm-text-light);transition:color .2s;}
.bk-foot__lines a:hover{color:var(--accent);}
.bk-foot__sep{color:#D9C6B5;}
.bk-foot__meta{
  display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:2px;
  font-family:var(--rm-font-ui);font-size:11px;text-transform:uppercase;letter-spacing:.13em;
  color:var(--rm-text-light);
}
.bk-foot__back{color:var(--accent);}
.bk-foot__back:hover{color:var(--accent-hover);}
.bk-foot__boqe{flex-shrink:0;transition:opacity .2s;}
.bk-foot__boqe:hover{opacity:.82;}
.bk-foot__boqe img{width:118px;height:auto;display:block;margin:0 auto;}

/* ============================ shared badges ============================ */
.bk-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-family:var(--rm-font-ui);
  font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  padding:4px 11px;border-radius:999px;white-space:nowrap;line-height:1;
}
.bk-badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.85;}
.bk-badge--online{background:var(--accent-tint);color:var(--accent);}
.bk-badge--walkin{background:transparent;color:var(--rm-text-soft);box-shadow:inset 0 0 0 1px var(--rm-border);}
.bk-badge--free{background:var(--rm-free-tint);color:var(--rm-free);}
.bk-badge--neutral{background:var(--rm-chip-bg);color:var(--rm-text-soft);}

/* price token */
.bk-when{
  display:block;font-family:var(--rm-font-ui);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.13em;color:var(--accent);margin-bottom:9px;
}
.bk-when--free{color:var(--rm-free);}
.bk-price{font-family:var(--rm-font-heading);font-weight:600;color:var(--accent);line-height:1;}
.bk-price--free{color:var(--rm-free);}
.bk-price__from{
  display:block;font-family:var(--rm-font-ui);font-size:9.5px;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;color:var(--rm-text-light);margin-bottom:1px;
}

/* ===================================================================== */
/* VARIATION A — INDEX (dotted-leader editorial)                          */
/* ===================================================================== */
.va{max-width:860px;margin:0 auto;padding:64px 30px 56px;}
.va-cat{margin-bottom:52px;}
.va-cat:last-child{margin-bottom:8px;}
.va-cat__head{
  display:flex;align-items:baseline;gap:18px;margin:0 0 22px;
}
.va-cat__title{
  font-family:var(--rm-font-heading);font-weight:500;font-size:25px;
  letter-spacing:.02em;margin:0;white-space:nowrap;color:var(--rm-text);
}
.va-cat__rule{flex:1 1 auto;height:1px;background:var(--rm-border);}
.va-cat__count{
  font-family:var(--rm-font-ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--rm-text-light);
}
.va-row{
  display:block;padding:16px 0;border-bottom:1px dotted var(--rm-border);
}
.va-row:last-child{border-bottom:none;}
.va-row__top{display:flex;align-items:baseline;gap:10px;}
.va-row__name{
  order:1;font-family:var(--rm-font-heading);font-weight:500;font-size:23px;
  color:var(--rm-text);transition:color .2s;flex:0 0 auto;white-space:nowrap;letter-spacing:.01em;
}
.va-row__lead{order:2;flex:1 1 40px;min-width:28px;border-bottom:1px dotted var(--rm-border);transform:translateY(-5px);}
.va-row__price{order:3;font-size:21px;flex:0 0 auto;white-space:nowrap;}
.va-row__bottom{
  display:flex;align-items:center;gap:14px;margin-top:6px;
}
.va-row__desc{color:var(--rm-text-light);font-size:16.5px;line-height:1.55;flex:1 1 auto;}
.va-row__go{
  order:9;flex-shrink:0;font-family:var(--rm-font-ui);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.1em;color:var(--accent);opacity:0;transform:translateX(-4px);
  transition:opacity .2s,transform .2s;white-space:nowrap;
}
.va-row:hover .va-row__name{color:var(--accent);}
.va-row:hover .va-row__go{opacity:1;transform:translateX(0);}
.va-row--free:hover .va-row__name{color:var(--rm-free);}
.va-row--free .va-row__go{color:var(--rm-free);}

/* ===================================================================== */
/* VARIATION B — CARDS (minimal bordered grid)                            */
/* ===================================================================== */
.vb{max-width:var(--maxw);margin:0 auto;padding:60px 30px 52px;}
.vb-cat{margin-bottom:46px;}
.vb-cat__head{
  display:flex;align-items:baseline;gap:18px;margin:0 0 22px;
}
.vb-cat__title{
  font-family:var(--rm-font-heading);font-weight:500;font-size:25px;letter-spacing:.02em;margin:0;
  white-space:nowrap;
}
.vb-cat__rule{flex:1 1 auto;height:1px;background:var(--rm-border);}
.vb-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(294px,1fr));gap:22px;
}
.vb-card{
  display:flex;flex-direction:column;
  background:var(--rm-white);border:1px solid var(--rm-border);border-radius:8px;
  padding:24px 24px 22px;box-shadow:var(--rm-shadow-card);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  min-height:226px;
}
.vb-card:hover{transform:translateY(-4px);box-shadow:var(--rm-shadow-hover);border-color:var(--rm-border-strong);}
.vb-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:11px;}
.vb-card__title{
  font-family:var(--rm-font-heading);font-weight:500;font-size:24px;line-height:1.15;margin:0;
  transition:color .2s;letter-spacing:.01em;
}
.vb-card:hover .vb-card__title{color:var(--accent);}
.vb-card--free:hover .vb-card__title{color:var(--rm-free);}
.vb-card__price{font-size:23px;text-align:right;flex-shrink:0;}
.vb-card__desc{color:var(--rm-text-light);font-size:16.5px;line-height:1.55;margin:0 0 18px;}
.vb-card__foot{
  margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-top:16px;border-top:1px solid var(--rm-border-soft);
}
.vb-btn{
  display:inline-block;padding:9px 20px;border:1px solid var(--accent);color:var(--accent);
  font-family:var(--rm-font-ui);font-size:12.5px;font-weight:500;text-transform:uppercase;
  letter-spacing:.06em;border-radius:6px;transition:background .2s,color .2s;
}
.vb-btn:hover{background:var(--accent);color:var(--rm-white);}
.vb-card--free .vb-btn{border-color:var(--rm-free);color:var(--rm-free);}
.vb-card--free .vb-btn:hover{background:var(--rm-free);color:#fff;}

/* ===================================================================== */
/* VARIATION C — LEDGER (numbered editorial + sticky rail)                */
/* ===================================================================== */
.vc{
  max-width:var(--maxw);margin:0 auto;padding:60px 30px 52px;
  display:grid;grid-template-columns:172px 1fr;gap:48px;align-items:start;
}
.vc-rail{position:sticky;top:36px;}
.vc-rail__eyebrow{
  font-family:var(--rm-font-ui);font-size:10.5px;font-weight:600;text-transform:uppercase;
  letter-spacing:.16em;color:var(--rm-text-light);margin:0 0 12px;
}
.vc-rail__nav{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rm-border);}
.vc-rail__link{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-family:var(--rm-font-ui);font-size:12px;letter-spacing:.02em;
  color:var(--rm-text-soft);padding:9px 0;border-bottom:1px solid var(--rm-border-soft);transition:color .2s;line-height:1.25;
}
.vc-rail__link:last-child{border-bottom:none;}
.vc-rail__link:hover{color:var(--accent);}
.vc-rail__link span{font-size:10px;color:var(--rm-text-light);font-variant-numeric:tabular-nums;flex-shrink:0;}
.vc-main{min-width:0;}
.vc-cat{margin-bottom:18px;}
.vc-cat__title{
  font-family:var(--rm-font-heading);font-weight:500;font-size:22px;letter-spacing:.03em;
  text-transform:none;color:var(--accent);margin:0 0 4px;padding-top:20px;
}
.vc-cat:first-child .vc-cat__title{padding-top:0;}
.vc-row{
  display:grid;grid-template-columns:1fr auto;gap:22px;align-items:start;
  padding:22px 0;border-top:1px solid var(--rm-border);
}
.vc-row__num{
  font-family:var(--rm-font-heading);font-weight:400;font-size:30px;color:var(--rm-num);line-height:1;
  padding-top:3px;font-variant-numeric:tabular-nums;
}
.vc-row__body{min-width:0;}
.vc-row__name{
  font-family:var(--rm-font-heading);font-weight:500;font-size:24px;line-height:1.12;margin:0 0 5px;
  transition:color .2s;letter-spacing:.01em;color:var(--rm-head);
}
.vc-row:hover .vc-row__name{color:var(--accent);}
.vc-row--free:hover .vc-row__name{color:var(--rm-free);}
.vc-row__desc{color:var(--rm-text-light);font-size:16.5px;line-height:1.55;margin:0 0 10px;max-width:52ch;}
.vc-row__tags{display:flex;align-items:center;gap:12px;}
.vc-row__right{
  display:flex;flex-direction:column;align-items:flex-end;gap:12px;text-align:right;flex-shrink:0;
}
.vc-row__price{font-size:24px;}
.vc-go{
  font-family:var(--rm-font-ui);font-size:11.5px;font-weight:600;text-transform:uppercase;
  letter-spacing:.09em;color:var(--accent);white-space:nowrap;display:inline-flex;align-items:center;gap:6px;
}
.vc-go .vc-go__arr{transition:transform .2s;}
.vc-row:hover .vc-go__arr{transform:translateX(3px);}
.vc-row--free .vc-go{color:var(--rm-free);}

/* ---- Variation C: Events carousel (horizontal pass-through) ---- */
.vc-ev{margin:0 0 14px;}
.vc-ev__head{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 16px;
}
.vc-ev__hint{
  font-family:var(--rm-font-ui);font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:.13em;color:var(--rm-text-light);display:inline-flex;align-items:center;gap:7px;
  white-space:nowrap;
}
.vc-ev__hint svg{width:26px;height:8px;opacity:.7;}
.vc-ev__scroll{
  display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 0 18px;margin:0 -6px;scroll-padding-left:6px;
  scrollbar-width:thin;scrollbar-color:var(--rm-border) transparent;
}
.vc-ev__scroll::-webkit-scrollbar{height:6px;}
.vc-ev__scroll::-webkit-scrollbar-thumb{background:var(--rm-border);border-radius:999px;}
.vc-ev__scroll::-webkit-scrollbar-track{background:transparent;}
.vc-ev__scroll>*{scroll-snap-align:start;}
.vc-evc{
  flex:0 0 236px;display:flex;flex-direction:column;
  background:var(--rm-white);border:1px solid var(--rm-border);border-radius:9px;overflow:hidden;
  box-shadow:var(--rm-shadow-card);transition:transform .25s,box-shadow .25s,border-color .25s;
}
.vc-evc:hover{transform:translateY(-4px);box-shadow:var(--rm-shadow-hover);border-color:var(--rm-border-strong);}
.vc-evc__media{position:relative;height:138px;background:var(--rm-media-bg);overflow:hidden;}
.vc-evc__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.vc-evc:hover .vc-evc__media img{transform:scale(1.05);}
.vc-evc__price{
  position:absolute;top:10px;right:10px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(3px);
  border-radius:7px;padding:5px 9px 6px;box-shadow:0 2px 8px rgba(14,13,14,.12);text-align:right;
}
.vc-evc__price .bk-price{font-size:17px;white-space:nowrap;}
.vc-evc__price .bk-price__from{margin-bottom:0;}
.vc-evc__body{padding:14px 15px 15px;display:flex;flex-direction:column;flex:1;}
.vc-evc__date{
  font-family:var(--rm-font-ui);font-size:10.5px;font-weight:600;text-transform:uppercase;
  letter-spacing:.11em;color:var(--accent);margin-bottom:6px;
}
.vc-evc--free .vc-evc__date{color:var(--rm-free);}
.vc-evc__name{
  font-family:var(--rm-font-heading);font-weight:500;font-size:20px;line-height:1.12;
  margin:0 0 12px;letter-spacing:.01em;transition:color .2s;color:var(--rm-head);
}
.vc-evc:hover .vc-evc__name{color:var(--accent);}
.vc-evc--free:hover .vc-evc__name{color:var(--rm-free);}
.vc-evc__foot{
  margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.vc-evc__cta{
  font-family:var(--rm-font-ui);font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:.08em;color:var(--accent);display:inline-flex;align-items:center;gap:5px;
}
.vc-evc--free .vc-evc__cta{color:var(--rm-free);}
.vc-evc__cta .vc-go__arr{transition:transform .2s;}
.vc-evc:hover .vc-evc__cta .vc-go__arr{transform:translateX(3px);}

/* ============== title-readability variations (on Ledger) ============== */
/* C — Display (Cormorant): bump weight for legibility */
.bk-page[data-title="display"] .vc-cat__title,
.bk-page[data-title="display"] .vc-row__name,
.bk-page[data-title="display"] .vc-evc__name{font-weight:600;}

/* B — Sturdy serif (Gentium Plus, bold) */
.bk-page[data-title="serif"] .vc-cat__title,
.bk-page[data-title="serif"] .vc-row__name,
.bk-page[data-title="serif"] .vc-evc__name{
  font-family:var(--rm-font-body);font-weight:700;letter-spacing:0;
}
.bk-page[data-title="serif"] .vc-cat__title{font-size:21px;}
.bk-page[data-title="serif"] .vc-row__name{font-size:22px;}
.bk-page[data-title="serif"] .vc-evc__name{font-size:19px;}

/* A — Sans (Roboto): maximum legibility */
.bk-page[data-title="sans"] .vc-cat__title,
.bk-page[data-title="sans"] .vc-row__name,
.bk-page[data-title="sans"] .vc-evc__name{
  font-family:var(--rm-font-ui);font-weight:600;letter-spacing:.005em;
}
.bk-page[data-title="sans"] .vc-cat__title{font-size:19px;letter-spacing:.04em;}
.bk-page[data-title="sans"] .vc-row__name{font-size:21px;line-height:1.2;}
.bk-page[data-title="sans"] .vc-evc__name{font-size:18px;line-height:1.2;}

/* ===================================================================== */

[hidden]{display:none !important;}

/* ============================ responsive ============================ */
@media (max-width:900px){
  .vc{grid-template-columns:1fr;gap:30px;}
  .vc-rail{position:static;}
  .vc-rail__eyebrow{display:none;}
  .vc-rail__nav{display:none;}
}
@media (max-width:680px){
  body{font-size:17px;}
  .bk-top__inner{padding:30px 20px 34px;}
  .va,.vb,.vc{padding-left:20px;padding-right:20px;}
  .va-row__top{flex-wrap:wrap;}
  .va-row__lead{display:none;}
  .va-row__name{font-size:21px;white-space:normal;}
  .va-row__price{margin-left:auto;}
  .vb-grid{grid-template-columns:1fr;}
  .vc-row{grid-template-columns:1fr;}
  .vc-row__right{
    grid-column:1;flex-direction:row;align-items:center;justify-content:space-between;
    width:100%;text-align:left;margin-top:8px;
  }
}
