/* ==========================================================
   CLM Fall Feasts blocks — shared front-end styles
   Palette & type from the CLM Brand Guide (May 2023)
   ========================================================== */
:root {
  --clm-dark-blue: #001956;
  --clm-blue-950: #000f34;
  --clm-blue-800: #032372;
  --clm-cyan: #00a0cc;
  --clm-cyan-700: #007ba0;
  --clm-cyan-100: #cceffa;
  --clm-orange: #e2841c;
  --clm-parchment: #f7f4ee;
  --clm-ink: #1b2333;
  --clm-gray-700: #414a5c;
  --clm-gray-600: #5a6273;
  --clm-gray-500: #7a8191;
  --clm-gray-400: #a4a9b4;
  --clm-gray-300: #cdd0d7;
  --clm-gray-200: #e4e6ea;
  --clm-stone-300: #cfcabf;
  --clm-gradient-tree: linear-gradient(160deg,#00bc8b 0%,#0095c1 24%,#6d2891 58%,#cd2907 82%,#e2841c 100%);
  --ff-font-heading: "Astoria","Gill Sans","Gill Sans MT",Calibri,system-ui,sans-serif;
  --ff-font-body: "Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ff-font-script: "Amsterdam","Snell Roundhand","Brush Script MT",cursive;
}

/* ---- shared primitives ---- */
.clm-ff { font-family: var(--ff-font-body); color: var(--clm-gray-600); }
.clm-ff .clm-ff-eyebrow {
  margin: 0; font-family: var(--ff-font-body); font-weight: 600; font-size: 13px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--clm-cyan);
}
.clm-ff .clm-ff-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--ff-font-body); font-weight: 600; font-size: 18px; line-height: 1;
  letter-spacing: 0.01em; padding: 16px 34px; border-radius: 999px; border: 1px solid transparent;
  cursor: pointer; text-decoration: none;
  transition: background 140ms cubic-bezier(0.4,0,0.2,1), box-shadow 220ms cubic-bezier(0.4,0,0.2,1);
}
.clm-ff .clm-ff-btn:hover { box-shadow: 0 4px 14px rgba(0,25,86,0.18); }
.clm-ff .clm-ff-btn--md { font-size: 16px; padding: 12px 26px; }
.clm-ff .clm-ff-btn--primary { background: var(--clm-dark-blue); border-color: var(--clm-dark-blue); color: #fff; }
.clm-ff .clm-ff-btn--primary:hover { background: var(--clm-blue-800); color: #fff; }
.clm-ff .clm-ff-btn--cyan { background: var(--clm-cyan); border-color: var(--clm-cyan); color: #fff; }
.clm-ff .clm-ff-btn--cyan:hover { background: #008cb5; color: #fff; }
.clm-ff .clm-ff-btn--white { background: #fff; border-color: #fff; color: var(--clm-dark-blue); }
.clm-ff .clm-ff-btn--white:hover { background: var(--clm-cyan-100); color: var(--clm-dark-blue); }
.clm-ff .clm-ff-btn--block { width: 100%; }
.clm-ff a { color: var(--clm-cyan); text-decoration: none; }
.clm-ff a:hover { color: var(--clm-cyan-700); }
.clm-ff .clm-ff-container { max-width: 1280px; margin: 0 auto; padding-left: 48px; padding-right: 48px; }

/* ================= HERO ================= */
.clm-ff-hero { position: relative; background: var(--clm-dark-blue); overflow: hidden; min-height: 92vh; display: flex; flex-direction: column; }
.clm-ff-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.clm-ff-hero__scrim { position: absolute; inset: 0; background: rgba(0,25,86,0.82); pointer-events: none; transition: background 120ms linear; }
.clm-ff-hero__wash { position: absolute; inset: 0; background: var(--clm-gradient-tree); opacity: 0.1; pointer-events: none; }
.clm-ff-hero__letter { position: absolute; font-family: Georgia,"Times New Roman",serif; font-size: 44vh; line-height: 1; color: rgba(255,255,255,0.045); pointer-events: none; user-select: none; }
.clm-ff-hero__letter--pey { top: -10%; right: -4%; }
.clm-ff-hero__letter--zayin { bottom: -14%; left: -2%; }
.clm-ff-hero__topbar { position: relative; z-index: 2; }
.clm-ff-hero__topbar-inner { max-width: 1280px; margin: 0 auto; padding: 26px 48px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.clm-ff-hero__logo { height: 44px; width: auto; filter: brightness(0) invert(1); opacity: 0.95; }
.clm-ff-hero__topbar-right { display: flex; align-items: center; gap: 26px; }
.clm-ff-hero__topnote { font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.clm-ff-hero__rule { height: 1px; background: var(--clm-gradient-tree); opacity: 0.5; max-width: 1280px; margin: 0 auto; }
.clm-ff-hero__main { position: relative; z-index: 1; flex: 1; display: flex; align-items: center; }
.clm-ff-hero__content { max-width: 1080px; margin: 0 auto; padding: 72px 48px 64px; text-align: center; width: 100%; }
.clm-ff-hero__eyebrow { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--clm-cyan); }
.clm-ff-hero__heading-wrap { margin-top: 30px; position: relative; }
.clm-ff-hero__script { position: absolute; top: -44px; left: 50%; transform: translateX(-50%) rotate(-4deg); font-family: var(--ff-font-script); font-size: 52px; color: var(--clm-orange); white-space: nowrap; }
.clm-ff-hero__heading { margin: 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: clamp(56px, 7vw, 88px); line-height: 1.04; letter-spacing: -0.02em; color: #fff; text-wrap: balance; }
.clm-ff-hero__lead { margin: 30px auto 0; max-width: 620px; font-weight: 300; font-size: 20px; line-height: 1.6; color: rgba(255,255,255,0.75); }
.clm-ff-hero__ctas { margin-top: 44px; display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.clm-ff-hero__countdown { margin: 52px 0 0; font-size: 16px; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.clm-ff-hero__countdown strong { color: #fff; font-weight: 600; }

/* ================= WORD FOR 5787 ================= */
.clm-ff-word { background: var(--clm-parchment); position: relative; overflow: hidden; }
.clm-ff-word__grid { max-width: 1280px; margin: 0 auto; padding: 120px 48px; display: grid; grid-template-columns: minmax(0,5fr) minmax(0,7fr); gap: 96px; align-items: start; }
.clm-ff-word__aside { position: sticky; top: 48px; }
.clm-ff-word__heading { margin: 20px 0 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 56px; line-height: 1.1; letter-spacing: -0.02em; color: var(--clm-dark-blue); text-wrap: balance; }
.clm-ff-word__bar { margin-top: 34px; width: 72px; height: 3px; background: var(--clm-gradient-tree); border-radius: 2px; }
.clm-ff-word__quote { margin: 34px 0 0; font-family: var(--ff-font-heading); font-weight: 400; font-size: 22px; line-height: 1.35; color: var(--clm-gray-700); }
.clm-ff-word__ref { margin: 10px 0 0; font-size: 16px; font-weight: 600; letter-spacing: 0.04em; color: var(--clm-cyan); }
.clm-ff-word__photo { margin-top: 38px; border-radius: 18px; overflow: hidden; }
.clm-ff-word__photo img { display: block; width: 100%; height: 320px; object-fit: cover; }
.clm-ff-word__body { font-weight: 300; font-size: 20px; line-height: 1.85; color: var(--clm-gray-700); }
.clm-ff-word__body p { margin: 0; }
.clm-ff-word__body p + p { margin-top: 28px; }
.clm-ff-word__body strong { font-weight: 600; color: var(--clm-dark-blue); }
@media (max-width: 980px) { .clm-ff-word__grid { grid-template-columns: 1fr; gap: 48px; } .clm-ff-word__aside { position: static; } }

/* ================= SCHEDULE ================= */
.clm-ff-schedule { background: #fff; border-top: 1px solid var(--clm-gray-200); }
.clm-ff-schedule__inner { max-width: 1280px; margin: 0 auto; padding: 110px 48px; }
.clm-ff-schedule__head { text-align: center; max-width: 720px; margin: 0 auto; }
.clm-ff-schedule__heading { margin: 12px 0 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 36px; line-height: 1.18; letter-spacing: -0.02em; color: var(--clm-dark-blue); }
.clm-ff-schedule__grid { margin-top: 64px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }
.clm-ff-schedule__item { padding: 8px 48px; }
.clm-ff-schedule__item:first-child { padding-left: 0; }
.clm-ff-schedule__item:last-child { padding-right: 0; }
.clm-ff-schedule__item + .clm-ff-schedule__item { border-left: 1px solid var(--clm-gray-200); }
.clm-ff-schedule__dates { font-family: var(--ff-font-heading); font-weight: 500; font-size: 76px; line-height: 1; color: var(--clm-dark-blue); }
.clm-ff-schedule__dates small { font-size: 30px; color: var(--clm-gray-400); font-weight: 500; }
.clm-ff-schedule__label { margin: 14px 0 0; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--clm-cyan); }
.clm-ff-schedule__desc { margin: 12px 0 0; font-weight: 300; font-size: 16px; line-height: 1.6; }
@media (max-width: 980px) { .clm-ff-schedule__grid { grid-template-columns: 1fr; gap: 40px; } .clm-ff-schedule__item { padding: 0 !important; border-left: none !important; } }

/* ================= REGISTRATION SPLIT ================= */
.clm-ff-registration { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.clm-ff-registration__panel { padding: 96px 72px; display: flex; flex-direction: column; }
.clm-ff-registration__panel--light { background: var(--clm-parchment); border-top: 1px solid var(--clm-gray-200); }
.clm-ff-registration__panel--dark { background: var(--clm-dark-blue); position: relative; overflow: hidden; }
.clm-ff-registration__panel--dark::before { content: ""; position: absolute; inset: 0; background: var(--clm-gradient-tree); opacity: 0.08; pointer-events: none; }
.clm-ff-registration__col { max-width: 520px; width: 100%; display: flex; flex-direction: column; flex: 1; position: relative; }
.clm-ff-registration__panel--light .clm-ff-registration__col { margin-left: auto; padding-right: 24px; }
.clm-ff-registration__panel--dark .clm-ff-registration__col { margin-right: auto; padding-left: 24px; }
.clm-ff-registration__heading { margin: 18px 0 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 46px; line-height: 1.1; letter-spacing: -0.02em; color: var(--clm-dark-blue); }
.clm-ff-registration__panel--dark .clm-ff-registration__heading { color: #fff; }
.clm-ff-registration__photo { margin-top: 34px; border-radius: 18px; overflow: hidden; }
.clm-ff-registration__photo img { display: block; width: 100%; height: 300px; object-fit: cover; }
.clm-ff-registration__body { margin: 30px 0 0; font-weight: 300; font-size: 18px; line-height: 1.6; }
.clm-ff-registration__panel--dark .clm-ff-registration__body { color: rgba(255,255,255,0.82); }
.clm-ff-registration__where { margin: 22px 0 0; font-size: 16px; line-height: 1.6; color: var(--clm-gray-700); }
.clm-ff-registration__where strong { font-weight: 600; color: var(--clm-dark-blue); }
.clm-ff-registration__panel--dark .clm-ff-registration__where { color: rgba(255,255,255,0.7); }
.clm-ff-registration__panel--dark .clm-ff-registration__where strong { color: #fff; }
.clm-ff-registration__where a { color: var(--clm-cyan); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(0,160,204,0.4); }
.clm-ff-registration__where a:hover { color: var(--clm-cyan-700); text-decoration-color: currentColor; }
.clm-ff-registration__panel--dark .clm-ff-registration__where a { color: var(--clm-cyan); }
.clm-ff-registration__cta { margin-top: auto; padding-top: 36px; }
@media (max-width: 980px) { .clm-ff-registration { grid-template-columns: 1fr; } .clm-ff-registration__col { margin: 0 !important; padding: 0 !important; } .clm-ff-registration__panel { padding: 64px 32px; } }

/* ================= TESTIMONIES ================= */
.clm-ff-testimonies { background: #fff; }
.clm-ff-testimonies__inner { max-width: 880px; margin: 0 auto; padding: 120px 48px 110px; text-align: center; }
.clm-ff-testimonies__script { font-family: var(--ff-font-script); font-size: 44px; color: var(--clm-orange); }
.clm-ff-testimonies__heading { margin: 14px 0 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 36px; line-height: 1.18; letter-spacing: -0.02em; color: var(--clm-dark-blue); text-wrap: balance; }
.clm-ff-testimonies__stage { margin-top: 48px; position: relative; }
.clm-ff-testimonies__mark { position: absolute; top: -34px; left: 50%; transform: translateX(-50%); font-family: Georgia,serif; font-size: 120px; line-height: 1; color: var(--clm-cyan-100); pointer-events: none; user-select: none; }
.clm-ff-testimonies__quote { margin: 0; position: relative; min-height: 200px; display: none; align-items: center; }
.clm-ff-testimonies__quote.is-active { display: flex; }
.clm-ff-testimonies__quote p { margin: 0; font-weight: 300; font-style: italic; font-size: 20px; line-height: 1.8; color: var(--clm-gray-700); }
.clm-ff-testimonies__author { margin: 26px 0 0; font-size: 16px; font-weight: 600; letter-spacing: 0.04em; color: var(--clm-cyan); }
.clm-ff-testimonies__nav { margin-top: 36px; display: flex; align-items: center; justify-content: center; gap: 18px; }
.clm-ff-testimonies__arrow { width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--clm-stone-300); background: transparent; color: var(--clm-dark-blue); font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.clm-ff-testimonies__arrow:hover { border-color: var(--clm-cyan); color: var(--clm-cyan); }
.clm-ff-testimonies__dots { display: flex; gap: 8px; }
.clm-ff-testimonies__dot { width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0; cursor: pointer; background: var(--clm-gray-300); }
.clm-ff-testimonies__dot.is-active { background: var(--clm-cyan); }

/* ================= SIGNUP ================= */
.clm-ff-signup { background: var(--clm-dark-blue); position: relative; overflow: hidden; }
.clm-ff-signup::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 1px; background: var(--clm-gradient-tree); opacity: 0.7; }
.clm-ff-signup__grid { max-width: 1280px; margin: 0 auto; padding: 96px 48px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 80px; align-items: center; }
.clm-ff-signup__heading { margin: 18px 0 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 44px; line-height: 1.12; letter-spacing: -0.02em; color: #fff; text-wrap: balance; }
.clm-ff-signup__lead { margin: 20px 0 0; font-weight: 300; font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.72); }
.clm-ff-signup__card { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.13); border-radius: 18px; padding: 38px 40px; }
.clm-ff-signup__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.clm-ff-signup__field { margin-top: 14px; }
.clm-ff-signup__field:first-child { margin-top: 0; }
.clm-ff-signup__label { display: block; font-size: 14px; font-weight: 600; color: rgba(255,255,255,0.85); margin-bottom: 6px; }
.clm-ff-signup__input { width: 100%; box-sizing: border-box; padding: 12px 16px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.08); color: #fff; font-family: var(--ff-font-body); font-size: 16px; }
.clm-ff-signup__input::placeholder { color: rgba(255,255,255,0.4); }
.clm-ff-signup__input:focus { outline: none; border-color: var(--clm-cyan); box-shadow: 0 0 0 3px rgba(0,160,204,0.3); }
.clm-ff-signup__submit { margin-top: 22px; }
.clm-ff-signup__terms { margin: 16px 0 0; font-size: 14px; line-height: 1.35; color: rgba(255,255,255,0.5); }
.clm-ff-signup__terms a { color: rgba(255,255,255,0.75); }
@media (max-width: 980px) { .clm-ff-signup__grid { grid-template-columns: 1fr; gap: 40px; } }

/* ================= ONLINE EVENTS ================= */
.clm-ff-events { background: var(--clm-parchment); border-top: 1px solid var(--clm-gray-200); }
.clm-ff-events__inner { max-width: 1280px; margin: 0 auto; padding: 110px 48px; }
.clm-ff-events__head { text-align: center; max-width: 760px; margin: 0 auto; }
.clm-ff-events__heading { margin: 18px 0 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 36px; line-height: 1.18; letter-spacing: -0.02em; color: var(--clm-dark-blue); text-wrap: balance; }
.clm-ff-events__lead { margin: 18px 0 0; font-weight: 300; font-size: 18px; line-height: 1.6; }
.clm-ff-events__grid { margin-top: 56px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; align-items: stretch; }
.clm-ff-events__card { background: #fff; border: 1px solid var(--clm-gray-200); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 4px 18px rgba(0,25,86,0.06); transition: transform 220ms cubic-bezier(0.4,0,0.2,1), box-shadow 220ms cubic-bezier(0.4,0,0.2,1); }
.clm-ff-events__card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,25,86,0.12); }
.clm-ff-events__photo { margin: 0; }
.clm-ff-events__photo img { display: block; width: 100%; height: 210px; object-fit: cover; }
.clm-ff-events__body { padding: 30px 30px 34px; display: flex; flex-direction: column; gap: 16px; flex: 1; }
.clm-ff-events__title { margin: 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 22px; line-height: 1.35; color: var(--clm-dark-blue); }
.clm-ff-events__whens { display: flex; flex-direction: column; gap: 10px; }
.clm-ff-events__when { margin: 0; font-weight: 300; font-size: 16px; line-height: 1.6; }
.clm-ff-events__when strong { font-weight: 600; color: var(--clm-dark-blue); }
.clm-ff-events__cta { margin-top: 48px; display: flex; justify-content: center; }
@media (max-width: 980px) { .clm-ff-events__grid { grid-template-columns: 1fr; } }

/* ================= IN-PERSON EVENTS ================= */
.clm-ff-ipevents { background: #fff; }
.clm-ff-ipevents__inner { max-width: 1180px; margin: 0 auto; padding: 110px 48px; }
.clm-ff-ipevents__head { text-align: center; max-width: 760px; margin: 0 auto; }
.clm-ff-ipevents__heading { margin: 18px 0 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 36px; line-height: 1.18; letter-spacing: -0.02em; color: var(--clm-dark-blue); text-wrap: balance; }
.clm-ff-ipevents__list { margin-top: 56px; display: flex; flex-direction: column; gap: 28px; }
.clm-ff-ipevents__card { background: var(--clm-parchment); border: 1px solid var(--clm-gray-200); border-radius: 18px; overflow: hidden; display: grid; grid-template-columns: minmax(0,5fr) minmax(0,7fr); box-shadow: 0 4px 18px rgba(0,25,86,0.06); transition: transform 220ms cubic-bezier(0.4,0,0.2,1), box-shadow 220ms cubic-bezier(0.4,0,0.2,1); }
.clm-ff-ipevents__card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,25,86,0.12); }
.clm-ff-ipevents__media { position: relative; min-height: 300px; background: var(--clm-gray-200); }
.clm-ff-ipevents__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.clm-ff-ipevents__body { padding: 40px 44px; display: flex; flex-direction: column; gap: 18px; }
.clm-ff-ipevents__title { margin: 0; font-family: var(--ff-font-heading); font-weight: 500; font-size: 28px; line-height: 1.35; color: var(--clm-dark-blue); }
.clm-ff-ipevents__lead { margin: 0; font-weight: 300; font-size: 18px; line-height: 1.6; }
.clm-ff-ipevents__lead strong { font-weight: 600; color: var(--clm-dark-blue); }
.clm-ff-ipevents__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.clm-ff-ipevents__event { display: flex; flex-direction: column; gap: 4px; }
.clm-ff-ipevents__event-title { margin: 0; font-size: 16px; font-weight: 600; color: var(--clm-dark-blue); }
.clm-ff-ipevents__event-date { margin: 0; font-size: 16px; font-weight: 400; color: var(--clm-cyan); }
.clm-ff-ipevents__cta { margin-top: auto; padding-top: 10px; }
@media (max-width: 980px) {
  .clm-ff-ipevents__card { grid-template-columns: 1fr; }
  .clm-ff-ipevents__media { min-height: 220px; }
  .clm-ff-ipevents__grid { grid-template-columns: 1fr; }
}
