
            /* @import statements hoisted from the tenant's custom CSS — they
               must precede every other rule in this stylesheet or browsers
               silently drop them. */
            

            /* Theme variables and custom CSS.
               themeStyles (:root brand vars) is emitted in BOTH native and
               advanced modes so page-builder components keep brand colors/fonts.
               In advanced mode the imported custom_css is injected afterwards and
               overrides the imported markup's look. */
            :root {
  --color-primary: #c1502e;
  --color-secondary: #2c241e;
  --color-accent: #e29f4c;
  --color-secondaryAccent: #5d8897;
  --color-background: #faf6f1;
  --color-surface: #ffffff;
  --color-text: #26221e;
  --color-textSecondary: #5f564e;
  --color-heading: var(--color-text);
  --heading-h1-size: 2.5rem;
  --heading-h1-color: var(--color-heading, var(--color-text));
  --heading-h2-size: 2rem;
  --heading-h2-color: var(--color-heading, var(--color-text));
  --heading-h3-size: 1.75rem;
  --heading-h3-color: var(--color-heading, var(--color-text));
  --heading-h4-size: 1.5rem;
  --heading-h4-color: var(--color-heading, var(--color-text));
  --heading-h5-size: 1.25rem;
  --heading-h5-color: var(--color-heading, var(--color-text));
  --heading-h6-size: 1rem;
  --heading-h6-color: var(--color-heading, var(--color-text));
  --color-border: #e6dccf;
  --color-success: #10b981;
  --color-warning: #f59e0b;
  --color-error: #ef4444;
  --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-secondary: 'Playfair Display', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --content-max-width: 100%;
}
body { background-color: #faf6f1; }

body { background-color: #faf6f1; }

            /* Site-level custom CSS (sanitized). Only applied in advanced mode;
               native mode stores but does not apply. */
            /* -------- NITOP — "Gulf Coast Seminar" design system --------
   Concept: a warm, editorial conference identity drawn from the
   NITOP logo (terracotta #C1502E, amber #E29F4C, teal #5D8897) — cream paper
   backgrounds, deep ink type, serif display headings, and
   sunlit coastal imagery. Professional and modern.
   ------------------------------------------------------------ */

:root {
  --nitop-terracotta: #c1502e;
  --nitop-terracotta-dark: #9e3f22;
  --nitop-amber: #e29f4c;
  --nitop-teal: #5d8897;
  --nitop-teal-dark: #3f6875;
  --nitop-teal-pale: #e8f0f1;
  --nitop-ink: #26221e;
  --nitop-ink-soft: #5f564e;
  --nitop-cream: #faf6f1;
  --nitop-paper: #ffffff;
  --nitop-sand: #f1e8dc;
  --nitop-line: #e6dccf;
  --nitop-max: 1160px;
  --nitop-radius: 14px;
  --nitop-shadow: 0 10px 30px -12px rgba(38, 34, 30, 0.18);
  --nitop-serif: "Playfair Display", Georgia, serif;
  --nitop-sans: "Inter", system-ui, -apple-system, sans-serif;

  /* Recur widget theme tokens — inline styles in widgets fall back to these */
  --color-primary: #c1502e;
  --color-background: #faf6f1;
  --color-accent: #e29f4c;
  --color-secondaryAccent: #5d8897;
  --color-border: #e6dccf;
  --color-surface: #f1e8dc;
  --color-text: #26221e;
  --color-textSecondary: #5f564e;
}

/* ---------- base ---------- */
body {
  background: var(--nitop-cream);
  color: var(--nitop-ink);
  font-family: var(--nitop-sans);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--nitop-serif);
  color: var(--nitop-ink);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

/* cap regular section content (theme contentWidth is "full") */
.puck-heading, .puck-text, .puck-grid, .puck-columns, .puck-flex,
.puck-stats, .puck-cta, .puck-image, .puck-button-container,
.puck-video, .recur-event-list, .recur-product-list {
  max-width: var(--nitop-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

.puck-heading h1 {
  font-size: clamp(2.2rem, 4.5vw, 3.25rem);
  margin: 2.5rem auto 0.75rem;
  text-wrap: balance;
}
.puck-heading h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  margin: 2.2rem auto 0.65rem;
  text-wrap: balance;
}
/* terracotta accent rule under every standalone h2 */
.puck-heading h2::after {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  background: var(--nitop-terracotta);
  border-radius: 999px;
  margin: 14px auto 0;
}
.puck-heading h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  margin: 2rem auto 0.4rem;
  color: var(--nitop-terracotta-dark);
  text-wrap: balance;
}

/* Native Recur headings render as direct children of #puck-content rather
   than inside a .puck-heading wrapper. Keep the same editorial scale on
   those section titles so typography is consistent across every page. */
#puck-content > h1 {
  font-size: clamp(2.2rem, 4.5vw, 3.25rem);
  margin: 2.5rem auto 0.75rem;
  text-wrap: balance;
}
#puck-content > h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  margin: 2.2rem auto 0.65rem;
  text-wrap: balance;
}
#puck-content > h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  margin: 2rem auto 0.4rem;
  color: var(--nitop-terracotta-dark);
  text-wrap: balance;
}

/* ---------- Sponsors & Partners opening statement ---------- */
/*
   The partnership case is the page's most important first impression after
   the hero. Treat the heading and its supporting paragraph as one editorial
   spotlight rather than two disconnected default blocks.
*/
#puck-content > h2:has(+ .puck-text + .puck-stats) {
  max-width: var(--nitop-max);
  margin: 3.2rem auto 0;
  padding: 48px 64px 0;
  box-sizing: border-box;
  border: 1px solid var(--nitop-teal-dark);
  border-bottom: 0;
  border-radius: 24px 24px 0 0;
  background: linear-gradient(120deg, var(--nitop-teal-dark) 0%, #31515c 100%);
  color: #ffffff;
  font-size: clamp(1.85rem, 3.2vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: -0.015em;
  text-align: left !important;
}
#puck-content > h2:has(+ .puck-text + .puck-stats)::before {
  content: "PARTNERSHIP IN FOCUS";
  display: block;
  margin-bottom: 14px;
  color: #b8d4d9;
  font-family: var(--nitop-sans);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  line-height: 1.3;
}
#puck-content > h2:has(+ .puck-text + .puck-stats)::after {
  width: 68px;
  height: 4px;
  margin: 18px 0 0;
  background: var(--nitop-amber);
}
#puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 16px 64px 50px;
  box-sizing: border-box;
  border: 1px solid var(--nitop-teal-dark);
  border-top: 0;
  border-radius: 0 0 24px 24px;
  background: linear-gradient(120deg, var(--nitop-teal-dark) 0%, #31515c 100%);
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1.06rem, 1.7vw, 1.2rem);
  line-height: 1.8;
}
#puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text + .puck-stats {
  margin-top: 34px;
}
#puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text + .puck-stats .puck-stats-title {
  color: var(--nitop-ink);
}

/* ---------- Sponsors & Partners opportunity panel ---------- */
/*
   Keep the live ProductList in place for future packages, but make its
   interim empty state feel intentional. The heading, explanation, status,
   and contact action now read as one decision-ready section.
*/
#puck-content > h2:has(+ .puck-text + .recur-product-list) {
  max-width: var(--nitop-max);
  margin: 3.2rem auto 0;
  padding: 42px 64px 0;
  box-sizing: border-box;
  border: 1px solid var(--nitop-line);
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  background: linear-gradient(120deg, #fffaf4 0%, #f3e9dd 100%);
  text-align: left !important;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list)::before {
  content: "NEXT STEP";
  display: block;
  margin-bottom: 12px;
  color: var(--nitop-terracotta);
  font-family: var(--nitop-sans);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  line-height: 1.3;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list)::after {
  margin: 16px 0 0;
  background: var(--nitop-teal);
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 12px 64px 24px;
  box-sizing: border-box;
  border-right: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  background: linear-gradient(120deg, #fffaf4 0%, #f3e9dd 100%);
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.75;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 0 64px 16px;
  box-sizing: border-box;
  border-right: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  background: linear-gradient(120deg, #fffaf4 0%, #f3e9dd 100%);
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-title {
  margin: 0 0 18px;
  text-align: left;
  font-size: 1.45rem;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-empty {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 24px;
  border: 1px solid rgba(93, 136, 151, 0.25);
  border-left: 4px solid var(--nitop-teal);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--nitop-ink-soft);
  font-size: 0.98rem;
  line-height: 1.65;
  text-align: left;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-empty::before {
  content: "COMING SOON";
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  padding: 6px 9px;
  border: 1px solid rgba(93, 136, 151, 0.24);
  border-radius: 999px;
  background: var(--nitop-teal-pale);
  color: var(--nitop-teal-dark);
  font-family: var(--nitop-sans);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  line-height: 1;
  white-space: nowrap;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list + .puck-button-container {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 0 64px 38px;
  box-sizing: border-box;
  border-right: 1px solid var(--nitop-line);
  border-bottom: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  border-radius: 0 0 22px 22px;
  background: linear-gradient(120deg, #fffaf4 0%, #f3e9dd 100%);
  justify-content: flex-start !important;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list + .puck-button-container .puck-button {
  margin-top: 0;
  box-shadow: 0 8px 18px -12px rgba(158, 63, 34, 0.75);
}

@media (max-width: 720px) {
  #puck-content > h2:has(+ .puck-text + .puck-stats) {
    margin-top: 2.4rem;
    padding: 34px 24px 0;
    border-radius: 18px 18px 0 0;
    font-size: clamp(1.7rem, 8vw, 2rem);
  }
  #puck-content > h2:has(+ .puck-text + .puck-stats)::before {
    margin-bottom: 12px;
    font-size: 0.64rem;
    letter-spacing: 0.14em;
  }
  #puck-content > h2:has(+ .puck-text + .puck-stats)::after {
    margin-top: 14px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text {
    padding: 14px 24px 32px;
    border-radius: 0 0 18px 18px;
    font-size: 1rem;
    line-height: 1.7;
  }
  #puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text + .puck-stats {
    margin-top: 24px;
  }

  #puck-content > h2:has(+ .puck-text + .recur-product-list) {
    margin-top: 2.4rem;
    padding: 32px 24px 0;
    border-radius: 18px 18px 0 0;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list)::before {
    font-size: 0.64rem;
    letter-spacing: 0.14em;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text {
    padding: 10px 24px 20px;
    font-size: 0.98rem;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list {
    padding: 0 24px 14px;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-empty {
    gap: 10px;
    padding: 18px 16px;
    font-size: 0.94rem;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-empty::before {
    padding: 5px 7px;
    font-size: 0.54rem;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list + .puck-button-container {
    padding: 0 24px 28px;
    border-radius: 0 0 18px 18px;
  }
}

.puck-text { color: var(--nitop-ink-soft); font-size: 1.06rem; max-width: 760px; line-height: 1.8; padding-top: 0.75rem; padding-bottom: 8px; white-space: pre-line; }
.puck-text strong { color: var(--nitop-ink); }

/* Section introductions read as editorial subtitles beneath their headings.
   Keep card, table, and archive body copy unaffected by limiting this to
   direct heading/text pairs in the page content. */
#puck-content > h1 + .puck-text,
#puck-content > h2 + .puck-text,
#puck-content > h3 + .puck-text {
  text-align: center !important;
}

/* Give the donation explanation cards a deliberate pause after their
   centered introduction, matching the editorial rhythm of the section. */
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--feature) + .puck-text + .puck-grid {
  margin-top: 12px;
}

/* Home testimonial: keep the quote, attribution, and survey result together
   as one compact editorial block instead of two oversized text areas. */
#puck-content > h2:has(+ .puck-text + .puck-text + .puck-grid) {
  margin-bottom: 0.2rem;
}
#puck-content > h2:has(+ .puck-text + .puck-text + .puck-grid) + .puck-text {
  max-width: 620px;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  color: var(--nitop-terracotta-dark);
  font-family: var(--nitop-serif);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  line-height: 1.55;
}
#puck-content > h2:has(+ .puck-text + .puck-text + .puck-grid) + .puck-text + .puck-text {
  max-width: 680px;
  padding-top: 0.35rem;
  padding-bottom: 1.1rem;
  font-size: 1rem;
  line-height: 1.55;
  text-align: center !important;
}

/* Program & Schedule date headings */
.nitop-schedule-date {
  max-width: var(--nitop-max);
  margin: 2.4rem auto 1.45rem;
  padding: 0 24px;
  box-sizing: border-box;
  text-align: center;
}
.nitop-schedule-date h2 {
  display: inline-block;
  margin: 0;
  color: var(--nitop-ink);
  font-family: var(--nitop-serif);
  font-size: clamp(1.7rem, 3vw, 2.25rem);
  line-height: 1.18;
  letter-spacing: -0.015em;
}
.nitop-schedule-date h2::after {
  content: '';
  display: block;
  width: 52px;
  height: 3px;
  margin: 13px auto 0;
  background: var(--nitop-terracotta);
  border-radius: 999px;
}

/* ---------- native Program & Schedule tables ---------- */
/*
   The schedule uses native Recur Heading + Table components. The adjacent
   heading/table relationship scopes this agenda treatment to the four
   schedule days without changing the registration or other site tables.
*/
#puck-content > h2:has(+ .puck-table-wrapper) {
  max-width: var(--nitop-max);
  margin: 3rem auto 0;
  padding: 24px 30px 18px;
  box-sizing: border-box;
  border-left: 8px solid var(--nitop-terracotta);
  border-top: 1px solid var(--nitop-line);
  border-right: 1px solid var(--nitop-line);
  border-radius: 18px 18px 0 0;
  background: linear-gradient(105deg, var(--nitop-sand) 0%, #fffdfb 100%);
  color: var(--nitop-ink);
  font-family: var(--nitop-serif);
  font-size: clamp(1.65rem, 2.9vw, 2.1rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  text-align: left !important;
  scroll-margin-top: 24px;
}
#puck-content > h2:has(+ .puck-table-wrapper)::after {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  margin-top: 12px;
  background: var(--nitop-amber);
  border-radius: 999px;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper {
  max-width: var(--nitop-max);
  margin: 0 auto 3.4rem;
  padding: 0 30px 6px;
  box-sizing: border-box;
  overflow-x: auto;
  border-right: 1px solid var(--nitop-line);
  border-bottom: 1px solid var(--nitop-line);
  border-left: 8px solid var(--nitop-terracotta);
  border-radius: 0 0 18px 18px;
  background: var(--nitop-paper);
  box-shadow: var(--nitop-shadow);
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper table {
  width: 100% !important;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--nitop-ink-soft);
  font-size: 0.98rem;
  line-height: 1.5;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th,
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td {
  padding: 17px 16px !important;
  border: 0;
  border-bottom: 1px solid var(--nitop-line);
  vertical-align: top;
  text-align: left !important;
  overflow-wrap: anywhere;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th {
  background: var(--nitop-teal-dark) !important;
  color: #ffffff !important;
  font-family: var(--nitop-sans);
  font-size: 0.74rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th:first-child,
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:first-child {
  width: 19%;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th:nth-child(2),
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:nth-child(2) {
  width: 42%;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th:last-child,
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:last-child {
  width: 39%;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody tr:nth-child(even) td {
  background: #fffaf5;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody tr:hover td {
  background: var(--nitop-teal-pale);
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody tr:last-child td {
  border-bottom: 0;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:first-child {
  color: var(--nitop-terracotta-dark);
  font-variant-numeric: tabular-nums;
  font-weight: 750;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:nth-child(2) {
  color: var(--nitop-ink);
  font-weight: 700;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:last-child {
  color: var(--nitop-teal-dark);
  font-size: 0.92rem;
}

/* ---------- Registration rate panel ---------- */
/* Scoped to the four-column pricing table so other native tables are untouched. */
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) {
  max-width: var(--nitop-max);
  margin: 3rem auto 0;
  padding: 32px 30px 8px;
  box-sizing: border-box;
  border-top: 1px solid var(--nitop-line);
  border-right: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  border-radius: 18px 18px 0 0;
  background: linear-gradient(105deg, var(--nitop-sand) 0%, #fffdfb 100%);
  color: var(--nitop-ink);
  text-align: center !important;
  scroll-margin-top: 24px;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper)::after {
  content: '';
  display: block;
  width: 48px;
  height: 3px;
  margin: 13px auto 0;
  background: var(--nitop-terracotta);
  border-radius: 999px;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 2px 30px 26px;
  box-sizing: border-box;
  border-right: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  background: linear-gradient(105deg, var(--nitop-sand) 0%, #fffdfb 100%);
  font-size: 1rem;
  line-height: 1.75;
  text-align: center !important;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 0 30px 8px;
  box-sizing: border-box;
  overflow-x: auto;
  border-right: 1px solid var(--nitop-line);
  border-bottom: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  border-radius: 0 0 18px 18px;
  background: var(--nitop-paper);
  box-shadow: 0 16px 38px -18px rgba(38, 34, 30, 0.24);
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper table {
  width: 100% !important;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--nitop-ink-soft);
  font-size: 0.96rem;
  line-height: 1.45;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper th,
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td {
  padding: 16px 15px !important;
  border: 0;
  border-bottom: 1px solid var(--nitop-line);
  vertical-align: middle;
  text-align: left !important;
  overflow-wrap: anywhere;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper th {
  background: var(--nitop-teal-dark) !important;
  color: #ffffff !important;
  font-family: var(--nitop-sans);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper th:first-child,
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:first-child {
  width: 37%;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper th:nth-child(n+2),
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(n+2) {
  width: 21%;
  text-align: center !important;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody tr:nth-child(even) td {
  background: #fffaf5;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody tr:hover td {
  background: var(--nitop-teal-pale);
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody tr:last-child td {
  border-bottom: 0;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:first-child {
  color: var(--nitop-ink);
  font-weight: 700;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(n+2) {
  color: var(--nitop-terracotta-dark);
  font-size: 1.04rem;
  font-variant-numeric: tabular-nums;
  font-weight: 750;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper + .puck-button-container {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 22px 30px 2px;
  box-sizing: border-box;
  background: var(--nitop-paper);
  border-right: 1px solid var(--nitop-line);
  border-bottom: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  border-radius: 0 0 18px 18px;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper + .puck-button-container .puck-button {
  box-shadow: 0 8px 20px -8px rgba(193, 80, 46, 0.7);
}

/* ---------- hero ---------- */
/* full-bleed: escape the 32px padding that \003c main> applies on all sides */
.puck-hero {
  position: relative;
  overflow: hidden;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-top: -32px;
}
.puck-hero-content { max-width: 880px; padding: 0 24px; }
.puck-hero-eyebrow {
  display: inline-block;
  font-family: var(--nitop-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #ffe9d2;
  background: rgba(193, 80, 46, 0.85);
  padding: 8px 18px;
  border-radius: 999px;
  margin-bottom: 22px;
}
.puck-hero-title {
  font-family: var(--nitop-serif);
  font-size: clamp(2.5rem, 6vw, 4.4rem);
  font-weight: 700;
  color: #ffffff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
  line-height: 1.08;
  margin: 0 0 18px;
}
.puck-hero-subtitle {
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  color: rgba(255, 255, 255, 0.94);
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 720px;
  margin: 0 auto 30px;
}
.puck-hero-cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.puck-hero-cta-primary, .puck-hero-cta-secondary {
  display: inline-block;
  padding: 15px 34px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.puck-hero-cta-primary {
  background: var(--nitop-terracotta);
  color: #ffffff;
  box-shadow: 0 8px 24px -8px rgba(193, 80, 46, 0.7);
}
.puck-hero-cta-primary:hover { background: var(--nitop-terracotta-dark); transform: translateY(-2px); }
.puck-hero-cta-secondary {
  background: rgba(255, 255, 255, 0.14);
  color: #ffffff;
  border: 1.5px solid rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(6px);
}
.puck-hero-cta-secondary:hover { background: rgba(255, 255, 255, 0.28); transform: translateY(-2px); }

/* soft bottom fade — dissolves the hero photo into the page background */
.puck-hero::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100px;
  background: linear-gradient(to bottom, transparent 0%, #faf6f1 100%);
  pointer-events: none;
  z-index: 2;
}
/* interior hero uses a dark gradient — no cream fade needed there */
.puck-hero--minimal::after { display: none; }

/* interior page heroes (minimal style) */
.puck-hero--minimal { background: linear-gradient(150deg, #2c241e 0%, #513425 55%, var(--nitop-terracotta-dark) 100%); padding: 90px 24px; }
.puck-hero--minimal .puck-hero-title { color: #fff; }
.puck-hero--minimal .puck-hero-subtitle { color: rgba(255, 244, 232, 0.9); }

/* ---------- buttons ---------- */
.puck-button {
  display: inline-block;
  padding: 13px 30px;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  background: var(--nitop-terracotta);
  color: #fff;
  transition: background 0.15s ease, transform 0.15s ease;
}
.puck-button:hover { background: var(--nitop-terracotta-dark); transform: translateY(-1px); }
.puck-button-container { padding-top: 8px; padding-bottom: 24px; }

/* ---------- cards ---------- */
.puck-card {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-radius: var(--nitop-radius);
  box-shadow: var(--nitop-shadow);
  padding: 30px 28px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  height: 100%;
  box-sizing: border-box;
}
.puck-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -14px rgba(38, 34, 30, 0.25); }
.puck-card-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--nitop-terracotta);
  margin-bottom: 10px;
}
.puck-card-title {
  font-family: var(--nitop-serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--nitop-ink);
  margin: 0 0 10px;
}
.puck-card-description { color: var(--nitop-ink-soft); font-size: 0.98rem; }
.puck-card-meta { margin-top: 14px; border-top: 1px dashed var(--nitop-line); padding-top: 12px; }
.puck-card-meta-row { display: flex; gap: 10px; font-size: 0.92rem; padding: 3px 0; }
.puck-card-meta-label { font-weight: 600; color: var(--nitop-ink); min-width: 130px; }
.puck-card-meta-value, .puck-card-meta-link { color: var(--nitop-ink-soft); }
.puck-card-meta-link { color: var(--nitop-terracotta); text-decoration: none; }
.puck-card-button {
  display: inline-block;
  margin-top: 16px;
  padding: 10px 22px;
  border-radius: 999px;
  background: var(--nitop-sand);
  color: var(--nitop-terracotta-dark);
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
}
.puck-card-button:hover { background: var(--nitop-amber); color: #fff; }

/* variant: session cards — a restrained teal note from the NITOP logo */
.puck-card--session { border-top: 3px solid var(--nitop-teal); }
.puck-card--session .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--session .puck-card-button {
  background: var(--nitop-teal-pale);
  color: var(--nitop-teal-dark);
}
.puck-card--session .puck-card-button:hover {
  background: var(--nitop-teal);
  color: #fff;
}

/* variant: fee cards */
.puck-card--fee { background: var(--nitop-paper); border-top: 4px solid var(--nitop-amber); }
.puck-card--fee .puck-card-title { color: var(--nitop-terracotta-dark); }

/* variant: feature (what registration includes) */
.puck-card--feature {
  background: var(--nitop-sand);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-terracotta);
}
.puck-card--feature .puck-card-title::before {
  content: "✓";
  display: inline-block;
  color: var(--nitop-terracotta);
  font-weight: 700;
  margin-right: 8px;
}

/* Award winners are the heart of the Awards page: give each entry a clear
   recognition band without repeating a separate definition-card section. */
.puck-card--award-winner {
  background: linear-gradient(145deg, #ffffff 0%, #fff8ed 100%);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-terracotta);
  padding: 32px 28px 30px;
}
.puck-card--award-winner:hover {
  border-top-color: var(--nitop-amber);
}
.puck-card--award-winner .puck-card-eyebrow {
  color: var(--nitop-terracotta-dark);
  line-height: 1.45;
}
.puck-card--award-winner .puck-card-title {
  font-size: 1.5rem;
  margin-bottom: 16px;
}
.puck-card--award-winner .puck-card-description {
  line-height: 1.72;
  white-space: pre-line;
}

/* variant: step (how to register) */
.puck-card--step {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-teal);
}
.puck-card--step .puck-card-eyebrow {
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--nitop-teal-dark);
}

/* variant: promo (plus one callout) */
.puck-card--promo {
  background: linear-gradient(135deg, #fef6e7 0%, var(--nitop-sand) 100%);
  border: 1.5px solid var(--nitop-amber);
  text-align: center;
  padding: 40px 56px;
  box-shadow: 0 4px 20px -8px rgba(226, 159, 76, 0.35);
}
.puck-card--promo .puck-card-title {
  font-family: var(--nitop-serif);
  font-size: 1.55rem;
  color: var(--nitop-terracotta-dark);
  margin-bottom: 12px;
}
.puck-card--promo .puck-card-description { font-size: 1rem; max-width: 640px; margin: 0 auto; }

/* variant: notice (cancellation policy) */
.puck-card--notice {
  background: var(--nitop-sand);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-ink-soft);
  padding: 28px 36px;
}
.puck-card--notice .puck-card-title { font-size: 1.05rem; color: var(--nitop-ink); margin-bottom: 8px; }
.puck-card--notice .puck-card-description { font-size: 0.94rem; color: var(--nitop-ink-soft); }

/* ===== Historical archive sections ===== */
.puck-card--archive-resource {
  background: linear-gradient(145deg, #fff 0%, #fcf7f0 100%);
  border-top: 3px solid var(--nitop-amber);
  padding: 24px 22px;
  height: auto !important;
  min-height: 0 !important;
}
.puck-card--archive-resource .puck-card-title {
  font-size: 1.12rem;
  line-height: 1.25;
}
.puck-card--archive-resource .puck-card-description {
  font-size: 0.9rem;
  line-height: 1.55;
}
.puck-card--archive-resource .puck-card-button {
  background: var(--nitop-terracotta);
  color: #fff;
  padding: 9px 18px;
}
.puck-card--archive-resource .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
  color: #fff;
}
.puck-card--archive-resource:hover {
  border-color: var(--nitop-amber);
}

/* Structured replacements for long imported source-text dumps */
.puck-card--source-section {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-terracotta);
  padding: 28px 30px;
  height: auto !important;
  min-height: 0 !important;
}
.puck-card--source-section:hover {
  transform: none;
  box-shadow: 0 12px 30px -18px rgba(38, 34, 30, 0.25);
}
.puck-card--source-section .puck-card-title {
  color: var(--nitop-ink);
  font-size: 1.2rem;
  margin-bottom: 12px;
}
.puck-card--source-section .puck-card-description {
  color: var(--nitop-ink-soft);
  font-size: 0.97rem;
  line-height: 1.72;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

/* Long-form source material should read like a document, not a wall of tiles */
.puck-card--document-section,
.puck-card--archive-document {
  position: relative;
  height: auto !important;
  min-height: 0 !important;
  padding: 34px 42px 38px;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--nitop-line);
  border-radius: 0;
  box-shadow: none;
}
.puck-card--document-section::before,
.puck-card--archive-document::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 72px;
  height: 3px;
  background: var(--nitop-teal);
}
.puck-card--archive-document::before { background: var(--nitop-amber); }
.puck-card--document-section:hover,
.puck-card--archive-document:hover {
  transform: none;
  box-shadow: none;
}
.puck-card--document-section .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--archive-document .puck-card-eyebrow {
  color: var(--nitop-terracotta);
}
.puck-card--document-section .puck-card-title,
.puck-card--archive-document .puck-card-title {
  max-width: 780px;
  margin-bottom: 16px;
  font-size: clamp(1.3rem, 2.2vw, 1.72rem);
}
.puck-card--document-section .puck-card-description,
.puck-card--archive-document .puck-card-description {
  max-width: 920px;
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.82;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.puck-card--archive-link-row {
  height: auto !important;
  min-height: 0 !important;
  padding: 24px 28px;
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-teal);
  box-shadow: none;
}
.puck-card--archive-link-row > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 28px;
}
.puck-card--archive-link-row .puck-card-eyebrow,
.puck-card--archive-link-row .puck-card-title,
.puck-card--archive-link-row .puck-card-description {
  grid-column: 1;
}
.puck-card--archive-link-row > div > div {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: center;
}
.puck-card--archive-link-row:hover {
  transform: translateX(3px);
  border-color: var(--nitop-teal);
  box-shadow: none;
}
.puck-card--archive-link-row .puck-card-content { min-width: 0; }
.puck-card--archive-link-row .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--archive-link-row .puck-card-title {
  margin-bottom: 8px;
  font-size: 1.16rem;
}
.puck-card--archive-link-row .puck-card-description {
  color: var(--nitop-ink-soft);
  line-height: 1.58;
  white-space: pre-line;
}
.puck-card--archive-link-row .puck-card-button {
  margin: 0;
  white-space: nowrap;
  background: var(--nitop-teal-dark);
  color: #fff;
}
.puck-card--archive-link-row .puck-card-button:hover {
  background: var(--nitop-terracotta);
  color: #fff;
}

.puck-card--archive-unavailable-row {
  height: auto !important;
  min-height: 0 !important;
  padding: 22px 28px;
  background: rgba(241, 232, 220, 0.55);
  border: 1px dashed #cfbeaa;
  border-left: 4px solid #b79c7d;
  box-shadow: none;
}
.puck-card--archive-unavailable-row:hover {
  transform: none;
  border-color: #cfbeaa;
  border-left-color: #b79c7d;
  box-shadow: none;
}
.puck-card--archive-unavailable-row .puck-card-eyebrow {
  color: #856b50;
}
.puck-card--archive-unavailable-row .puck-card-title {
  margin-bottom: 7px;
  font-size: 1.12rem;
}
.puck-card--archive-unavailable-row .puck-card-description {
  color: var(--nitop-ink-soft);
  font-size: 0.92rem;
}

/* Year archive information should read as a contained record, not an
   unfinished text fragment between headings. */
.puck-grid:has(.puck-card--archive-document) .puck-card--archive-document {
  padding: 28px 32px 30px;
  background: linear-gradient(145deg, #fff 0%, #fcf7f0 100%);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-amber);
  border-radius: 14px;
  box-shadow: 0 12px 26px -20px rgba(38, 34, 30, 0.32);
}
.puck-grid:has(.puck-card--archive-document) .puck-card--archive-document::before {
  display: none;
}
.puck-grid:has(.puck-card--archive-document) .puck-card--archive-document:hover {
  background: linear-gradient(145deg, #fff 0%, #fcf7f0 100%);
  box-shadow: 0 12px 26px -20px rgba(38, 34, 30, 0.32);
}
.puck-grid:has(.puck-card--archive-document),
.puck-grid:has(.puck-card--archive-link-row),
.puck-grid:has(.puck-card--archive-unavailable-row) {
  padding-bottom: 16px;
}

@media (min-width: 721px) {
  .puck-grid:has(.puck-card--archive-resource) > .puck-grid-column > .puck-card--archive-resource {
    flex: 1 1 auto !important;
    height: 100% !important;
  }
}

.puck-grid:has(.puck-card--archive-resource) > .puck-grid-column > .puck-card--archive-resource {
  display: flex;
  box-sizing: border-box;
  overflow: hidden !important;
}
.puck-grid:has(.puck-card--archive-resource) > .puck-grid-column > .puck-card--archive-resource > div {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}
.puck-grid:has(.puck-card--archive-resource) > .puck-grid-column > .puck-card--archive-resource > div > div:last-child {
  margin-top: auto;
}

.puck-card--archive-year {
  position: relative;
  height: auto !important;
  min-height: 0 !important;
  padding: 24px 30px 24px 40px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--nitop-line);
  border-radius: 0;
  box-shadow: none;
}
.puck-card--archive-year > div {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) auto;
  grid-template-areas:
    "eyebrow title button"
    "eyebrow description button";
  align-items: center;
  gap: 6px 30px;
}
.puck-card--archive-year::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--nitop-line);
}
.puck-card--archive-year::after {
  content: "";
  position: absolute;
  left: 2px;
  top: 50%;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border-radius: 50%;
  background: var(--nitop-teal);
  border: 3px solid var(--nitop-paper);
  box-shadow: 0 0 0 1px var(--nitop-teal);
}
.puck-card--archive-year:hover {
  transform: none;
  background: var(--nitop-teal-pale);
  box-shadow: none;
}
.puck-card--archive-year .puck-card-eyebrow {
  grid-area: eyebrow;
  margin: 0;
  color: var(--nitop-terracotta);
}
.puck-card--archive-year .puck-card-title {
  grid-area: title;
  margin: 0;
  font-size: 1.45rem;
}
.puck-card--archive-year .puck-card-description {
  grid-area: description;
  margin: 0;
  color: var(--nitop-ink-soft);
  white-space: pre-line;
  line-height: 1.65;
}
.puck-card--archive-year > div > div { grid-area: button; }
.puck-card--archive-year .puck-card-button {
  margin: 0;
  white-space: nowrap;
  background: var(--nitop-teal-dark);
  color: #fff;
}
.puck-card--archive-year .puck-card-button:hover {
  background: var(--nitop-terracotta);
  color: #fff;
}

/* Exhibitors page: keep explanatory copy anchored to the timeline it introduces. */
.puck-card--exhibitor-callout {
  padding: 30px 36px;
  background: linear-gradient(135deg, var(--nitop-teal-pale) 0%, var(--nitop-paper) 100%);
  border: 1px solid rgba(93, 136, 151, 0.28);
  border-left: 5px solid var(--nitop-teal);
  box-shadow: 0 12px 28px -22px rgba(63, 104, 117, 0.35);
}
.puck-card--exhibitor-callout:hover {
  transform: none;
}
.puck-card--exhibitor-callout .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--exhibitor-callout .puck-card-title {
  font-size: clamp(1.3rem, 2.2vw, 1.65rem);
  margin-bottom: 10px;
}
.puck-card--exhibitor-callout .puck-card-description {
  max-width: 900px;
  color: var(--nitop-ink-soft);
  line-height: 1.72;
}

.puck-grid:has(.puck-card--document-section),
.puck-grid:has(.puck-card--archive-document),
.puck-grid:has(.puck-card--archive-link-row),
.puck-grid:has(.puck-card--archive-unavailable-row),
.puck-grid:has(.puck-card--archive-year) {
  grid-auto-rows: auto !important;
}

@media (max-width: 720px) {
  .puck-card--document-section,
  .puck-card--archive-document {
    padding: 28px 4px 30px;
  }
  .puck-card--archive-link-row {
    display: block;
    padding: 22px;
  }
  .puck-card--archive-link-row > div,
  .puck-card--archive-year > div {
    display: block;
  }
  .puck-card--archive-link-row > div > div {
    display: block;
  }
  .puck-card--archive-link-row .puck-card-button {
    margin-top: 18px;
    white-space: normal;
  }
  .puck-card--archive-year {
    display: block;
    padding: 24px 18px 24px 36px;
  }
  .puck-card--archive-year .puck-card-title {
    margin-bottom: 8px;
  }
  .puck-card--archive-year .puck-card-button {
    margin-top: 18px;
    white-space: normal;
  }
}

/* Conference Information — editorial hierarchy instead of paragraph cards */
.puck-card--conference-quote {
  position: relative;
  overflow: hidden;
  padding: 46px 54px;
  background: linear-gradient(125deg, var(--nitop-teal-dark) 0%, var(--nitop-teal) 100%);
  border: 0;
  box-shadow: 0 18px 42px -22px rgba(63, 104, 117, 0.7);
}
.puck-card--conference-quote::after {
  content: "“";
  position: absolute;
  right: 28px;
  bottom: -44px;
  color: rgba(255, 255, 255, 0.12);
  font: 700 12rem/1 var(--nitop-serif);
}
.puck-card--conference-quote:hover { transform: none; }
.puck-card--conference-quote .puck-card-eyebrow { color: rgba(255, 255, 255, 0.72); }
.puck-card--conference-quote .puck-card-title {
  max-width: 720px;
  color: #fff;
  font-size: clamp(1.55rem, 3vw, 2.15rem);
}
.puck-card--conference-quote .puck-card-description {
  position: relative;
  z-index: 1;
  max-width: 880px;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--nitop-serif);
  font-size: clamp(1.08rem, 2vw, 1.3rem);
  font-style: italic;
  line-height: 1.65;
}

.puck-card--conference-feature {
  padding: 42px 48px;
  background: linear-gradient(135deg, #fffaf2 0%, var(--nitop-sand) 100%);
  border: 1px solid #e5d4bd;
  border-top: 5px solid var(--nitop-amber);
  box-shadow: 0 16px 38px -24px rgba(38, 34, 30, 0.35);
}
.puck-card--conference-feature:hover { transform: none; }
.puck-card--conference-feature .puck-card-eyebrow { color: var(--nitop-terracotta); }
.puck-card--conference-feature .puck-card-title {
  max-width: 760px;
  color: var(--nitop-ink);
  font-size: clamp(1.45rem, 2.5vw, 1.9rem);
}
.puck-card--conference-feature .puck-card-description {
  margin-top: 18px;
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.78;
  white-space: pre-line;
  column-count: 2;
  column-gap: 48px;
  column-rule: 1px solid rgba(93, 136, 151, 0.22);
}

.puck-card--conference-group {
  padding: 34px 34px 36px;
  background: transparent;
  border: 0;
  border-top: 3px solid var(--nitop-teal);
  border-radius: 0;
  box-shadow: none;
}
.puck-card--conference-group:hover {
  transform: none;
  box-shadow: none;
}
.puck-card--conference-group .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--conference-group .puck-card-title { font-size: 1.55rem; }
.puck-card--conference-group .puck-card-description {
  color: var(--nitop-ink-soft);
  line-height: 1.72;
  white-space: pre-line;
}

/* Home page: make the experience section feel editorial rather than tiled. */
.puck-card--home-lead {
  background: linear-gradient(135deg, #f4fbfb 0%, var(--nitop-paper) 100%);
  border: 1px solid rgba(93, 136, 151, 0.25);
  border-top: 5px solid var(--nitop-teal);
  border-radius: var(--nitop-radius);
  padding: 36px 42px 40px;
  box-shadow: 0 14px 34px -24px rgba(63, 104, 117, 0.35);
}
.puck-card--home-lead .puck-card-eyebrow,
.puck-card--home-share .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--home-lead .puck-card-title {
  font-size: clamp(1.45rem, 2.5vw, 1.9rem);
}
.puck-card--home-lead .puck-card-description {
  max-width: 820px;
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.72;
}
.puck-card--home-lead .puck-card-button {
  background: var(--nitop-teal-dark);
  color: #fff;
}
.puck-card--home-lead .puck-card-button:hover {
  background: var(--nitop-terracotta);
  color: #fff;
}
.puck-card--home-share {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-teal);
}
.puck-card--home-share .puck-card-button {
  background: var(--nitop-teal-pale);
  color: var(--nitop-teal-dark);
}
.puck-card--home-share .puck-card-button:hover {
  background: var(--nitop-teal);
  color: #fff;
}

.puck-card--conference-poster,
.puck-card--conference-pie {
  padding: 38px 38px 40px;
  border: 1px solid var(--nitop-line);
  box-shadow: 0 14px 34px -24px rgba(38, 34, 30, 0.35);
}
.puck-card--conference-poster {
  background: linear-gradient(145deg, #fff 0%, #fff8ed 100%);
  border-top: 5px solid var(--nitop-amber);
}
.puck-card--conference-pie {
  background: linear-gradient(145deg, #fff 0%, var(--nitop-teal-pale) 100%);
  border-top: 5px solid var(--nitop-teal);
}
.puck-card--conference-poster:hover,
.puck-card--conference-pie:hover { transform: translateY(-2px); }
.puck-card--conference-poster .puck-card-title,
.puck-card--conference-pie .puck-card-title { font-size: 1.55rem; }
.puck-card--conference-pie .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--conference-poster .puck-card-description,
.puck-card--conference-pie .puck-card-description {
  line-height: 1.75;
  white-space: pre-line;
}
.puck-card--conference-poster .puck-card-button {
  background: var(--nitop-terracotta);
  color: #fff;
}
.puck-card--conference-poster .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
}

@media (max-width: 720px) {
  .puck-card--conference-quote,
  .puck-card--conference-feature,
  .puck-card--conference-group,
  .puck-card--conference-poster,
  .puck-card--conference-pie {
    padding: 28px 22px;
  }
  .puck-card--conference-feature .puck-card-description {
    column-count: 1;
  }
}

/* reference FAQ cards — keep the question prominent and the answer easy to scan */
.puck-card--faq {
  border-left: 4px solid var(--nitop-terracotta);
  padding: 28px 32px;
}
.puck-card--faq .puck-card-eyebrow {
  color: var(--nitop-terracotta);
  margin-bottom: 8px;
}
.puck-card--faq .puck-card-title {
  font-size: clamp(1.16rem, 2vw, 1.42rem);
  line-height: 1.3;
  margin-bottom: 14px;
}
.puck-card--faq .puck-card-description {
  font-size: 1rem;
  line-height: 1.75;
  max-width: 760px;
}
.puck-card--faq .puck-card-button {
  margin-top: 18px;
}
/* variant: committee/people */
.puck-card--person {
  text-align: center;
  background: linear-gradient(160deg, #f4fbfb 0%, var(--nitop-paper) 100%);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-teal);
  padding-top: 32px;
}
/* Person cards now render real portraits; suppress the old decorative placeholder. */
.puck-card--person::before {
  content: none;
  display: none;
}
.puck-card--person:not(:has(.puck-card-avatar))::before {
  content: "";
  display: block;
  width: 142px;
  height: 142px;
  margin: 0 auto 22px;
  box-sizing: border-box;
  border: 5px solid var(--nitop-amber);
  border-radius: 50%;
  background-color: #fffaf4;
  background-image: url("https://sites.getrecur.com/media/nitop/prod/e0699c85-0f1b-41fa-ac62-e74124ffe302/images/2026/08/8de73027-a80c-45a1-946d-1fde642c126c.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 106px auto;
}
.puck-card--person .puck-card-avatar {
  width: 142px !important;
  height: 142px !important;
  min-height: 142px !important;
  margin: 0 auto 22px;
  overflow: visible !important;
  border-radius: 50%;
}
.puck-card--person .puck-card-avatar-img {
  width: 142px !important;
  height: 142px !important;
  object-fit: cover;
  object-position: center center;
  box-shadow: 0 0 0 5px var(--nitop-amber);
}
.puck-card--person .puck-card-title { font-size: 1.18rem; color: var(--nitop-ink); }
.puck-card--person .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--person .puck-card-description { font-size: 0.93rem; color: var(--nitop-ink-soft); }
/* variant: session types */
.puck-card--session,
.puck-card--speaker,
.puck-card--speaker-workshop {
  border-left: 4px solid var(--nitop-terracotta);
}
.puck-card--speaker,
.puck-card--speaker-workshop {
  display: flex;
  flex-direction: column;
  position: relative;
  height: 100% !important;
  min-height: 520px !important;
  box-sizing: border-box;
}
.puck-card--speaker,
.puck-card--speaker-workshop { padding: 28px 28px; }
.puck-card--speaker-workshop .puck-card-title {
  font-size: 1.16rem;
  margin-bottom: 8px;
}
.puck-card--speaker .puck-card-title,
.puck-card--speaker-workshop .puck-card-title {
  min-height: 2.6em;
}
.puck-card--speaker .puck-card-description,
.puck-card--speaker-workshop .puck-card-description {
  min-height: 0;
  max-height: none;
  overflow: visible;
  display: block;
}
.puck-card--speaker-workshop .puck-card-description {
  font-size: 0.91rem;
  line-height: 1.5;
}
.puck-card--speaker .puck-card-avatar-img {
  width: 148px;
  height: 148px;
}
.puck-card--speaker-workshop .puck-card-avatar-img {
  width: 148px;
  height: 148px;
}
.puck-card--speaker .puck-card-avatar,
.puck-card--speaker-workshop .puck-card-avatar {
  width: 100%;
  height: 174px !important;
  min-height: 174px !important;
  justify-content: center;
  align-items: flex-start;
  overflow: visible !important;
  margin: 0 0 28px;
  flex: 0 0 auto;
}
.puck-card--speaker .puck-card-avatar-img,
.puck-card--speaker-workshop .puck-card-avatar-img {
  display: block;
  flex: 0 0 148px;
  object-fit: cover;
  object-position: center top;
  border-radius: 50%;
}
.puck-card--speaker .puck-card-button,
.puck-card--speaker-workshop .puck-card-button {
  position: static;
  margin-top: 0;
  align-self: flex-start;
}
.puck-card--speaker > div:not(.puck-card-avatar),
.puck-card--speaker-workshop > div:not(.puck-card-avatar) {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
}
.puck-card--speaker .puck-card-description + div,
.puck-card--speaker-workshop .puck-card-description + div {
  margin-top: auto;
}

.puck-card-avatar { display: flex; justify-content: center; margin-bottom: 14px; }
.puck-card-avatar-img { width: 110px; height: 110px; object-fit: cover; border-radius: 50%; }
.puck-card-avatar--ring .puck-card-avatar-img { box-shadow: 0 0 0 4px var(--nitop-amber); }

/* ---------- grids ---------- */
.puck-grid { display: grid; gap: 26px; padding-top: 18px; padding-bottom: 30px; }
.puck-grid-heading { font-family: var(--nitop-serif); }
.puck-grid-column { min-width: 0; }

/* ---------- stats ---------- */
.puck-stats { padding-top: 20px; padding-bottom: 20px; }
.puck-stats-title {
  font-family: var(--nitop-serif);
  font-size: 1.8rem;
  text-align: center;
  margin-bottom: 20px;
}
.puck-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 22px; }
.puck-stat-card {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-radius: var(--nitop-radius);
  padding: 30px 22px;
  text-align: center;
  box-shadow: var(--nitop-shadow);
}
.puck-stat-value {
  font-family: var(--nitop-serif);
  font-size: 2.6rem;
  font-weight: 700;
  color: var(--nitop-terracotta);
  display: block;
}
.puck-stat-label { font-weight: 600; color: var(--nitop-ink); margin-top: 6px; display: block; }
.puck-stat-description { color: var(--nitop-ink-soft); font-size: 0.9rem; margin-top: 4px; }

/* ---------- CTA band ---------- */
.puck-cta {
  background: linear-gradient(135deg, var(--nitop-terracotta-dark) 0%, var(--nitop-terracotta) 50%, var(--nitop-amber) 100%);
  border-radius: 20px;
  padding: 60px 44px;
  text-align: center;
  margin-top: 40px;
  margin-bottom: 60px;
  box-shadow: 0 22px 50px -18px rgba(158, 63, 34, 0.55);
}
.puck-cta-title {
  font-family: var(--nitop-serif);
  color: #ffffff;
  font-size: clamp(1.7rem, 3.4vw, 2.4rem);
  margin: 0 0 12px;
}
.puck-cta-description { color: rgba(255, 240, 228, 0.94); max-width: 640px; margin: 0 auto 26px; font-size: 1.05rem; }
.puck-cta-buttons { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.puck-cta-primary, .puck-cta-secondary {
  display: inline-block;
  padding: 14px 32px;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.15s ease;
}
.puck-cta-primary { background: #ffffff; color: var(--nitop-terracotta-dark); }
.puck-cta-primary:hover { transform: translateY(-2px); }
.puck-cta-secondary { border: 1.5px solid rgba(255, 255, 255, 0.7); color: #fff; }
.puck-cta-secondary:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-2px); }

/* ---------- images ---------- */
.puck-image-img, .puck-image img { border-radius: var(--nitop-radius); box-shadow: var(--nitop-shadow); max-width: 100%; height: auto; }
.puck-image-caption { text-align: center; color: var(--nitop-ink-soft); font-size: 0.88rem; margin-top: 10px; }

/* uniform-height photo strips — images inside a grid are cropped to the same height */
.puck-grid .puck-image { overflow: hidden; border-radius: var(--nitop-radius); }
.puck-grid .puck-image-img,
.puck-grid .puck-image img {
  width: 100% !important;
  height: 280px !important;
  object-fit: cover !important;
  border-radius: var(--nitop-radius) !important;
  display: block !important;
}

/* extra breathing room around image-grid sections */
.puck-grid:has(.puck-image) { padding-top: 32px; padding-bottom: 48px; }

/* ---------- header ---------- */
.site-header {
  background: rgba(250, 246, 241, 0.96);
  border-bottom: 1px solid var(--nitop-line);
  backdrop-filter: blur(10px);
}
.header-logo-img { max-height: 108px; width: auto; padding: 8px 0; margin-right: 8px; }
.header-grid { padding-left: 20px; padding-right: 20px; }
.header-grid,
.header-grid .nav-link,
.header-grid .dropdown-arrow,
.header-grid .header-cta-button,
.mobile-nav,
.mobile-nav .nav-link {
  font-family: var(--nitop-sans);
  font-size: 0.9rem;
  line-height: 1.2;
}
.nav-link {
  font-weight: 600;
  color: var(--nitop-ink);
  text-decoration: none;
  padding: 10px 6px;
  white-space: nowrap;
  border-radius: 8px;
  transition: color 0.15s ease, background 0.15s ease;
}
.nav-link:hover { color: var(--nitop-teal-dark); background: var(--nitop-teal-pale); }
.nav-dropdown {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-radius: 12px;
  box-shadow: var(--nitop-shadow);
  padding: 8px;
}
.nav-dropdown .nav-link { display: block; }
.header-cta-button {
  display: inline-block;
  background: var(--nitop-terracotta);
  color: #ffffff;
  font-weight: 600;
  font-size: 0.9rem;
  padding: 11px 26px;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.15s ease;
}
.header-cta-button:hover { background: var(--nitop-terracotta-dark); }
/* outline variant — applied to the Member Login button by URL targeting */
a.header-cta-button[href*="member.getrecur.com/nitop"] {
  background: transparent;
  color: var(--nitop-ink);
  border: 1.5px solid var(--nitop-line);
  padding: 10px 22px;
}
a.header-cta-button[href*="member.getrecur.com/nitop"]:hover {
  background: var(--nitop-teal-pale);
  border-color: var(--nitop-teal);
  color: var(--nitop-teal-dark);
}
.mobile-nav { background: var(--nitop-cream); }

/* ---------- footer ---------- */
.site-footer {
  background: #2c241e;
  color: #d8cfc4;
  margin-top: 70px;
  padding: 44px 24px 30px;
}
.site-footer-content {
  max-width: none;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(260px, 1.35fr) repeat(2, minmax(210px, 1fr)) minmax(150px, 0.75fr);
  gap: 28px;
  align-items: start;
}
.site-footer-title {
  font-family: var(--nitop-serif);
  color: var(--nitop-amber);
  font-size: 1.05rem;
  margin-bottom: 14px;
}
.site-footer-section:has(.site-footer-logo) { margin-top: -10px; }
.site-footer-logo { max-height: 104px; width: auto; object-fit: contain; object-position: left center; margin-bottom: 12px; }
/* logo section already shows the brand name — hide the redundant text title */
.site-footer-section:has(.site-footer-logo) .site-footer-title { display: none; }
.site-footer-text, .site-footer-description { color: #b9ac9d; font-size: 0.94rem; line-height: 1.7; }
.site-footer-links a, .site-footer-contact a {
  color: #e8ddd0;
  text-decoration: none;
  display: block;
  padding: 4px 0;
  font-size: 0.94rem;
}
.site-footer-links a:hover, .site-footer-contact a:hover { color: var(--nitop-amber); }
.site-footer-contact { color: #b9ac9d; font-size: 0.94rem; }
.footer-bottom-bar {
  max-width: none;
  width: 100%;
  box-sizing: border-box;
  margin: 40px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(226, 159, 76, 0.25);
  color: #93887b;
  font-size: 0.85rem;
}
.footer-bottom-bar-link { color: #c9bdae; }

@media (max-width: 980px) {
  .site-footer-content {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
}

@media (max-width: 720px) {
  .site-footer {
    padding-top: 36px;
  }
  .site-footer-content {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .site-footer-section:has(.site-footer-logo) {
    margin-top: -6px;
  }
  .footer-bottom-bar {
    margin-top: 32px;
  }
}

/* ---------- recur event widgets ---------- */
.recur-event-list-title, .recur-product-list-title {
  font-family: var(--nitop-serif);
  font-size: 1.9rem;
  text-align: center;
  margin: 20px 0 28px;
  color: var(--nitop-ink);
}
.recur-event-list-grid, .recur-product-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 26px;
}
.recur-event-card, .recur-product-card {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-radius: var(--nitop-radius);
  box-shadow: var(--nitop-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.recur-event-card:hover, .recur-product-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -14px rgba(38, 34, 30, 0.25); }
.recur-event-card-image, .recur-product-card-image { width: 100%; height: 190px; object-fit: cover; }
.recur-event-card-body, .recur-product-card-body { padding: 24px 22px 26px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.recur-event-card-title, .recur-product-card-title {
  font-family: var(--nitop-serif);
  font-size: 1.22rem;
  font-weight: 700;
  color: var(--nitop-ink);
  margin: 0;
}
.recur-event-card-date {
  color: var(--nitop-teal-dark);
  font-weight: 600;
  font-size: 0.88rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.recur-event-card-description, .recur-product-card-description { color: var(--nitop-ink-soft); font-size: 0.95rem; flex: 1; }
.recur-product-card-price { font-weight: 700; color: var(--nitop-terracotta-dark); font-size: 1.05rem; }
.recur-event-card-button, .recur-product-card-button {
  align-self: flex-start;
  display: inline-block;
  margin-top: 8px;
  padding: 11px 24px;
  border-radius: 999px;
  background: var(--nitop-teal);
  color: #fff;
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
}
.recur-event-card-button:hover, .recur-product-card-button:hover { background: var(--nitop-teal-dark); }

/* The current NITOP registration event uses a tall logo asset rather than a
   landscape photo. Treat it as a compact brand panel so the event details
   remain the visual focus instead of inheriting a large empty image area. */
.recur-event-card:has(img[alt*="2027 NITOP"]) {
  display: grid !important;
  grid-template-columns: 230px minmax(0, 1fr) !important;
  min-height: 180px;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-image {
  width: 230px !important;
  height: 180px !important;
  min-height: 0 !important;
  background: linear-gradient(145deg, #fffaf2 0%, var(--nitop-sand) 100%);
  overflow: hidden;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-body {
  padding: 30px 38px 32px !important;
  gap: 10px;
  justify-content: center !important;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-title {
  font-size: 1.5rem;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-date {
  font-size: 0.9rem;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-button {
  background: var(--nitop-terracotta);
  margin-top: 10px;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-button:hover {
  background: var(--nitop-terracotta-dark);
}

@media (max-width: 720px) {
  .recur-event-card:has(img[alt*="2027 NITOP"]) {
    display: flex !important;
    flex-direction: column;
    min-height: 0;
  }
  .recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-image {
    width: 100% !important;
    height: 155px !important;
  }
  .recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-body {
    padding: 24px 22px 26px !important;
  }
}

/* Registration's NITOP mark is a tall portrait asset. Contain that logo so
   the flame and wordmark remain fully visible; leave other product imagery
   on the normal photographic crop. */
.recur-product-card-image:has(img[alt*="NITOP"]) {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fffdfb;
}
.recur-product-card-image:has(img[alt*="NITOP"]) img {
  object-fit: contain !important;
  padding: 14px 20px;
  box-sizing: border-box;
}

.recur-event-list-empty, .recur-product-list-empty {
  text-align: center;
  color: var(--nitop-ink-soft);
  background: var(--nitop-sand);
  border-radius: var(--nitop-radius);
  padding: 44px 24px;
  font-size: 1rem;
}

/* Proposal submission links: flatten the three authoring columns into a
   six-track layout so five buttons form three balanced links above two
   centered links, rather than leaving the last grid cell empty. */
@media (min-width: 721px) {
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 18px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column {
    display: contents !important;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(1) > .puck-button-container:nth-child(1) {
    grid-column: 1 / span 2;
    grid-row: 1;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(2) > .puck-button-container:nth-child(1) {
    grid-column: 3 / span 2;
    grid-row: 1;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(3) > .puck-button-container:nth-child(1) {
    grid-column: 5 / span 2;
    grid-row: 1;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(1) > .puck-button-container:nth-child(2) {
    grid-column: 2 / span 2;
    grid-row: 2;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(2) > .puck-button-container:nth-child(2) {
    grid-column: 4 / span 2;
    grid-row: 2;
  }
}

/* Center the Recur embed widget containers (MembershipList, ProductList) */
[data-recur-widget="MembershipList"],
[data-recur-widget="ProductList"] {
  max-width: var(--nitop-max);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
/* When products load, the grid should left-align its card text but stay centered as a block */
[data-recur-widget="MembershipList"] .recur-product-list-grid,
[data-recur-widget="ProductList"] .recur-product-list-grid {
  text-align: left;
  justify-content: center;
}

/* calendar */
.recur-event-calendar-title { font-family: var(--nitop-serif); font-size: 1.6rem; margin-bottom: 18px; }
.recur-event-calendar-day { border: 1px solid var(--nitop-line); background: var(--nitop-paper); }
.recur-event-calendar-event {
  background: var(--nitop-teal-pale);
  color: var(--nitop-teal-dark);
  border-radius: 6px;
  padding: 2px 6px;
  font-size: 0.78rem;
  font-weight: 600;
}
.recur-event-modal-title { font-family: var(--nitop-serif); color: var(--nitop-ink); }
.recur-event-modal-body { color: var(--nitop-ink-soft); }
.recur-event-modal-button {
  background: var(--nitop-teal);
  color: #fff;
  border-radius: 999px;
  padding: 11px 26px;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
}

/* ---------- page title (interior fallback) ---------- */
.page-title { font-family: var(--nitop-serif); color: var(--nitop-ink); }

/* ---------- responsive ---------- */
@media (max-width: 720px) {
  .puck-cta { padding: 44px 24px; border-radius: 14px; margin-left: 16px; margin-right: 8px; }
  .puck-card { padding: 24px 20px; }
  .header-logo-img { max-height: 60px; padding: 6px 0; margin-right: 12px; }

  /* registration page: promo callout — reduce wide horizontal padding */
  .puck-card--promo { padding: 28px 24px; }

  /* registration page: notice card — reduce side padding to match base card */
  .puck-card--notice { padding: 24px 20px; }

  /* registration page: step cards (3-col grid) and any other multi-col grids
     collapse to a single column on narrow screens */
  .puck-grid { grid-template-columns: 1fr !important; }

  /* keep every speaker card and portrait consistent on phones */
  .puck-card--speaker,
  .puck-card--speaker-workshop {
    height: auto !important;
    min-height: 0 !important;
  }
  .puck-card--speaker .puck-card-button,
  .puck-card--speaker-workshop .puck-card-button {
    margin-top: 24px;
  }
}

/* thin chevron instead of filled ▼ in nav dropdowns */
.dropdown-arrow {
  font-size: 0;
  display: inline-block;
  vertical-align: middle;
  margin-left: 6px;
}
.header-grid .dropdown-arrow {
  font-size: 0 !important;
}
.header-grid .dropdown-arrow::before {
  content: none !important;
  display: none !important;
}
.dropdown-arrow::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}

/* all grid columns hold exactly one card — let cards stretch to equalise row heights */
.puck-grid-column { display: flex; flex-direction: column; gap: 26px; }
.puck-grid-column > .puck-card { flex: 1 !important; height: 100% !important; }

/* Speaker grids stack cards inside columns. Give each individual card one safe,
   content-preserving size instead of stretching cards to the full column height. */
.puck-grid-column > .puck-card--speaker,
.puck-grid-column > .puck-card--speaker-workshop {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 600px !important;
  overflow: visible !important;
}

@media (max-width: 720px) {
  .puck-grid-column > .puck-card--speaker,
  .puck-grid-column > .puck-card--speaker-workshop {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 640px !important;
  }
  .puck-grid-column > .puck-card--speaker .puck-card-button,
  .puck-grid-column > .puck-card--speaker-workshop .puck-card-button {
    margin-top: 0;
  }
}

/* Imported information cards should fit their content, not inherit equal-height rows. */
.puck-grid-column > .puck-card--source-section,
.puck-grid-column > .puck-card--archive-resource,
.puck-grid-column > .puck-card--archive-document,
.puck-grid-column > .puck-card--archive-link-row,
.puck-grid-column > .puck-card--archive-unavailable-row {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

/* remove renderer default white box behind cards in grid columns */
.puck-grid-column {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* ===== Photo Gallery page ===== */

/* quote interstitial card */
.puck-card--quote {
  background: linear-gradient(135deg, var(--nitop-terracotta) 0%, var(--nitop-terracotta-dark) 100%);
  border: none !important;
  border-radius: 20px;
  padding: 52px 64px !important;
  text-align: center;
  box-shadow: 0 22px 50px -18px rgba(158, 63, 34, 0.5);
}
.puck-card--quote .puck-card-title {
  font-family: var(--nitop-serif);
  font-size: 5rem;
  color: rgba(255, 255, 255, 0.32);
  line-height: 0.6;
  margin: 0 0 16px;
}
.puck-card--quote .puck-card-description {
  font-family: var(--nitop-serif) !important;
  font-size: clamp(1.15rem, 2.4vw, 1.6rem) !important;
  color: rgba(255, 255, 255, 0.96) !important;
  font-style: italic !important;
  line-height: 1.65 !important;
  max-width: 780px;
  margin: 0 auto;
}
.puck-card--quote .puck-card-eyebrow {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  margin-top: 22px;
  margin-bottom: 0;
}

@media (max-width: 720px) {
  .puck-card--quote { padding: 36px 28px !important; }
}

/* ===== Recur embed widgets (ContactForm, DonationForm) — NITOP styling ===== */
/* Real DOM classes (verified live): .recur-widget wrapper, .recur-contact-form,
   .recur-donation-form, .donation-amount-btn, .donation-custom-input, etc.
   Widgets ship inline styles, so !important is required. */

/* Center wrappers + swap the widget theme tokens to NITOP brand */
.recur-widget,
.recur-donation {
  margin-left: auto !important;
  margin-right: auto !important;
  --recur-primary: var(--nitop-terracotta) !important;
  --recur-accent: var(--nitop-terracotta) !important;
  --recur-text: var(--nitop-ink) !important;
  --recur-muted: var(--nitop-ink-soft) !important;
}

/* Card container look for both forms */
.recur-contact-form,
.recur-donation-form,
.recur-donation {
  background: #ffffff !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 18px !important;
  box-shadow: 0 14px 38px -18px rgba(38, 34, 30, 0.22) !important;
  padding: 36px 32px !important;
  box-sizing: border-box !important;
}

/* The live Contact component wraps its unclassed form in .puck-contact-widget. */
.puck-contact-widget {
  background: #ffffff !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 18px !important;
  box-shadow: 0 14px 38px -18px rgba(38, 34, 30, 0.22) !important;
  padding: 32px !important;
  box-sizing: border-box !important;
}

.recur-contact-form h3,
.recur-donation-form h3,
.recur-donation h3 {
  font-family: var(--nitop-serif) !important;
  color: var(--nitop-ink) !important;
  font-size: 1.5rem !important;
  margin: 0 0 6px !important;
}
.puck-contact-widget h3 {
  font-family: var(--nitop-serif) !important;
  color: var(--nitop-ink) !important;
  font-size: 1.5rem !important;
  margin: 0 0 6px !important;
}
.recur-contact-form > p { color: var(--nitop-ink-soft) !important; margin: 0 0 20px !important; }
.puck-contact-widget > p { color: var(--nitop-ink-soft) !important; margin: 0 0 20px !important; }

/* Inputs, textareas, selects — both widgets */
.recur-contact-form input[type="text"],
.recur-contact-form input[type="email"],
.recur-contact-form input[type="tel"],
.recur-contact-form input[type="number"],
.recur-contact-form textarea,
.puck-contact-widget input[type="text"],
.puck-contact-widget input[type="email"],
.puck-contact-widget input[type="tel"],
.puck-contact-widget textarea,
.recur-donation-form input[type="text"],
.recur-donation-form input[type="number"],
.recur-donation-form .donation-custom-input,
.recur-donation-form select,
.recur-donation input[type="text"],
.recur-donation input[type="number"],
.recur-donation .donation-custom-input,
.recur-donation select {
  border: 1.5px solid var(--nitop-line) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--nitop-ink) !important;
  padding: 12px 14px !important;
  font-family: var(--nitop-sans) !important;
  font-size: 0.95rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color 0.18s, box-shadow 0.18s !important;
}
.recur-contact-form input:focus,
.recur-contact-form textarea:focus,
.puck-contact-widget input:focus,
.puck-contact-widget textarea:focus,
.recur-donation-form input:focus,
.recur-donation-form select:focus,
.recur-donation input:focus,
.recur-donation select:focus {
  border-color: var(--nitop-terracotta) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(193, 80, 46, 0.12) !important;
}
.recur-contact-form textarea { min-height: 120px !important; resize: vertical !important; }
.recur-contact-form label {
  font-family: var(--nitop-sans) !important;
  font-weight: 600 !important;
  color: var(--nitop-ink) !important;
  font-size: 0.92rem !important;
  margin-bottom: 6px !important;
}
.puck-contact-widget label {
  font-family: var(--nitop-sans) !important;
  font-weight: 600 !important;
  color: var(--nitop-ink) !important;
  font-size: 0.92rem !important;
  margin-bottom: 6px !important;
}

/* Agreement + spam check panels */
.recur-contact-form label:has(input[type="checkbox"]) {
  background: var(--nitop-sand) !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 10px !important;
  padding: 14px 16px !important;
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  color: var(--nitop-ink-soft) !important;
  display: block !important;
}
.puck-contact-widget label:has(input[type="checkbox"]) {
  background: var(--nitop-sand) !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 10px !important;
  padding: 14px 16px !important;
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  color: var(--nitop-ink-soft) !important;
  display: block !important;
}

/* Buttons — contact submit and donation continue */
.recur-contact-form button[type="submit"],
.recur-contact-form button:last-of-type,
.puck-contact-widget button[type="submit"],
.puck-contact-widget button:last-of-type,
.recur-donation-form button[type="submit"],
.recur-donation-form .donation-submit,
.recur-donation-form .donation-continue,
.recur-donation-form .recur-donation-submit,
.recur-donation button[type="submit"],
.recur-donation .donation-submit,
.recur-donation .donation-continue,
.recur-donation .recur-donation-submit,
.donation-continue-btn,
.donation-submit-btn {
  background: var(--nitop-terracotta) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 14px 36px !important;
  font-family: var(--nitop-sans) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  width: 100% !important;
  margin-top: 10px !important;
  transition: background 0.18s, transform 0.15s !important;
}
.recur-contact-form button[type="submit"]:hover,
.puck-contact-widget button[type="submit"]:hover,
.recur-donation-form button[type="submit"]:hover,
.recur-donation-form .recur-donation-submit:hover,
.recur-donation button[type="submit"]:hover,
.recur-donation .recur-donation-submit:hover {
  background: var(--nitop-terracotta-dark) !important;
  transform: translateY(-1px) !important;
}
.recur-donation-form button:disabled,
.recur-donation button:disabled,
.recur-donation-form .recur-donation-submit:disabled,
.recur-donation .recur-donation-submit:disabled,
.donation-continue-btn:disabled,
.donation-submit-btn:disabled {
  background: rgba(193, 80, 46, 0.38) !important;
  color: rgba(255, 255, 255, 0.85) !important;
  cursor: default !important;
  transform: none !important;
}

/* Donation amount preset buttons */
.donation-amount-btn,
.donation-other-btn {
  background: #ffffff !important;
  border: 1.5px solid var(--nitop-line) !important;
  border-radius: 12px !important;
  padding: 14px 10px !important;
  font-family: var(--nitop-sans) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--nitop-ink) !important;
  cursor: pointer !important;
  transition: border-color 0.18s, background 0.18s, color 0.18s !important;
}
.donation-amount-btn:hover,
.donation-other-btn:hover {
  border-color: var(--nitop-terracotta) !important;
  color: var(--nitop-terracotta) !important;
}
.donation-amount-btn.selected,
.donation-amount-btn.active,
.donation-amount-btn[aria-pressed="true"],
.donation-other-btn.selected,
.donation-other-btn.active,
.donation-other-btn[aria-pressed="true"] {
  background: var(--nitop-terracotta) !important;
  border-color: var(--nitop-terracotta) !important;
  color: #ffffff !important;
}
.recur-donation .recur-donation-amount-button[style*="background: var(--color-text"],
.recur-donation-form .recur-donation-amount-button[style*="background: var(--color-text"] {
  background: var(--nitop-terracotta) !important;
  border-color: var(--nitop-terracotta) !important;
  color: #ffffff !important;
}

/* Donation form rhythm — the widget's inline grid collapses the two amount rows */
.recur-donation .donation-amounts,
.recur-donation-form .donation-amounts {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  row-gap: 14px !important;
  column-gap: 12px !important;
  margin-bottom: 26px !important;
}
.recur-donation .donation-other-btn,
.recur-donation-form .donation-other-btn {
  grid-column: auto !important;
}
.recur-donation .donation-frequency,
.recur-donation-form .donation-frequency {
  margin-top: 0 !important;
  margin-bottom: 24px !important;
}
.recur-donation .recur-donation-frequency-label,
.recur-donation-form .recur-donation-frequency-label {
  margin-bottom: 10px !important;
}
.recur-donation .recur-donation-frequency,
.recur-donation-form .recur-donation-frequency {
  min-height: 54px !important;
}
.recur-donation .donation-continue-btn,
.recur-donation .donation-submit-btn,
.recur-donation-form .donation-continue-btn,
.recur-donation-form .donation-submit-btn {
  margin-top: 14px !important;
}
.recur-donation .donation-fee-coverage,
.recur-donation-form .donation-fee-coverage {
  margin: 4px 0 18px !important;
  padding: 14px 16px !important;
  background: var(--nitop-sand) !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 12px !important;
}
.recur-donation .donation-fee-coverage label,
.recur-donation-form .donation-fee-coverage label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  line-height: 1.45 !important;
}
.recur-donation .donation-fee-coverage input[type="checkbox"],
.recur-donation-form .donation-fee-coverage input[type="checkbox"] {
  flex: 0 0 auto !important;
  width: 19px !important;
  height: 19px !important;
  margin: 2px 0 0 !important;
}
.recur-donation > p:last-child,
.recur-donation-form > p:last-child {
  margin: 12px 0 0 !important;
  color: var(--nitop-ink-soft) !important;
  font-size: 0 !important;
}
.recur-donation > p:last-child::after,
.recur-donation-form > p:last-child::after {
  content: "Secure payment powered by Stripe";
  color: var(--nitop-ink-soft);
  font-size: 0.88rem;
}

/* Donation page — center the live Recur widget and let it use the available width */
#puck-content .puck-grid:has(.recur-donation) {
  width: min(100%, 680px);
  margin-left: auto;
  margin-right: auto;
}
#puck-content .puck-grid:has(.recur-donation) > .puck-grid-column {
  display: flex;
  justify-content: center;
  min-width: 0;
}
#puck-content .puck-grid:has(.recur-donation) .recur-donation {
  width: 100% !important;
  max-width: 640px !important;
  box-sizing: border-box !important;
}

/* Contact page — keep the information panel, FAQ panel, and form balanced side by side */
.puck-grid:has(.recur-contact-form) {
  align-items: start;
  gap: 32px;
}
.puck-grid:has(.puck-contact-widget) {
  align-items: stretch;
  gap: 32px;
}
.puck-grid:has(.puck-contact-widget) > .puck-grid-column {
  display: flex;
  flex-direction: column;
  align-self: start;
  min-width: 0;
}
.puck-grid:has(.puck-contact-widget) > .puck-grid-column:first-child {
  gap: 24px;
}
.puck-grid:has(.puck-contact-widget) > .puck-grid-column:first-child > .puck-card {
  flex: 0 0 auto;
  width: 100%;
  height: auto !important;
  box-sizing: border-box;
}
.puck-grid:has(.puck-contact-widget) .puck-contact-widget {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) {
  padding: 38px 36px;
  background: linear-gradient(145deg, #fffaf2 0%, var(--nitop-sand) 100%);
  border: 1px solid var(--nitop-line);
  border-left: 5px solid var(--nitop-teal);
  box-shadow: 0 14px 38px -18px rgba(38, 34, 30, 0.22);
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) .puck-card-title {
  font-size: clamp(1.35rem, 2.3vw, 1.7rem);
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) .puck-card-description {
  line-height: 1.75;
  white-space: pre-line;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) .puck-card-button {
  background: var(--nitop-terracotta);
  color: #fff;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  min-height: 0;
  padding: 30px 36px 32px;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) > div {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) .puck-card-eyebrow {
  color: var(--nitop-terracotta);
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) .puck-card-description {
  flex: 0 0 auto;
  line-height: 1.7;
  white-space: pre-line;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) .puck-card-button {
  align-self: flex-start;
  margin-top: 20px;
  padding: 12px 26px;
  border-radius: 999px;
  background: var(--nitop-terracotta);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
  color: #fff;
}

/* When the native form cannot load in a cross-origin preview, present a useful
   branded fallback instead of a small disconnected error box. The selector
   does not match the full form on the published site. */
.puck-contact-widget:not(:has(form)):has(> div:only-child) {
  min-height: 345px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(145deg, #f4fbfb 0%, var(--nitop-teal-pale) 100%) !important;
  border: 1px solid rgba(93, 136, 151, 0.28) !important;
  border-left: 5px solid var(--nitop-teal) !important;
  padding: 38px 36px !important;
}
.puck-contact-widget:not(:has(form)):has(> div:only-child)::before {
  content: "Send us a message";
  display: block;
  margin-bottom: 14px;
  color: var(--nitop-ink);
  font-family: var(--nitop-serif);
  font-size: clamp(1.35rem, 2.3vw, 1.7rem);
  font-weight: 700;
}
.puck-contact-widget:not(:has(form)):has(> div:only-child) > div {
  color: var(--nitop-ink-soft);
  font-size: 0.98rem;
  line-height: 1.7;
}
.puck-contact-widget:not(:has(form)):has(> div:only-child)::after {
  content: "You can still reach us directly at coordinator@nitop.org.";
  display: block;
  margin-top: 18px;
  color: var(--nitop-teal-dark);
  font-size: 0.9rem;
  font-weight: 700;
}
.puck-grid:has(.recur-contact-form) > .puck-grid-column {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.puck-grid:has(.recur-contact-form) .recur-widget,
.puck-grid:has(.recur-contact-form) .recur-contact-form {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

@media (max-width: 720px) {
  .puck-grid:has(.puck-contact-widget) {
    align-items: start;
  }
  .puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]),
  .puck-contact-widget:not(:has(form)):has(> div:only-child) {
    min-height: 0;
    padding: 28px 24px !important;
  }
  .puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) {
    flex: none;
    padding: 28px 24px !important;
  }
}

/* Contact quick links */
.puck-card--contact-path {
  background: linear-gradient(145deg, #ffffff 0%, #fcf7f0 100%);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-teal);
  padding: 28px 24px 26px;
  box-shadow: 0 12px 30px -20px rgba(38, 34, 30, 0.32);
}
.puck-card--contact-path:hover {
  border-top-color: var(--nitop-terracotta);
}
.puck-card--contact-path .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--contact-path .puck-card-title {
  font-size: 1.18rem;
  line-height: 1.25;
}
.puck-card--contact-path .puck-card-description {
  line-height: 1.6;
}
.puck-card--contact-path .puck-card-button {
  margin-top: 18px;
  background: var(--nitop-terracotta);
  color: #fff;
}
.puck-card--contact-path .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
}

@media (max-width: 720px) {
  .puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) {
    gap: 18px !important;
  }
  .puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image-img {
    height: 220px !important;
  }
  .puck-card--contact-path {
    padding: 24px 22px 22px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) {
    margin-top: 2.25rem;
    padding: 24px 18px 7px;
    border-radius: 14px 14px 0 0;
    font-size: 1.7rem;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text {
    padding: 3px 18px 22px;
    font-size: 0.96rem;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper {
    padding: 0 12px 5px;
    border-radius: 0 0 14px 14px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper table,
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody {
    display: block;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper thead {
    display: none;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tr {
    display: block;
    padding: 12px 2px;
    border-bottom: 1px solid var(--nitop-line);
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody tr:last-child {
    border-bottom: 0;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 9px;
    width: auto !important;
    padding: 5px 6px !important;
    border: 0;
    background: transparent !important;
    text-align: left !important;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td::before {
    color: var(--nitop-ink-soft);
    font-size: 0.66rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    line-height: 1.45;
    text-transform: uppercase;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:first-child::before {
    content: 'Registration Type';
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(2)::before {
    content: 'By July 1';
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(3)::before {
    content: 'July 2 – Oct. 1';
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:last-child::before {
    content: 'Oct. 2 – Dec. 4';
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:first-child {
    color: var(--nitop-ink);
    font-size: 0.98rem;
    font-weight: 700;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(n+2) {
    color: var(--nitop-terracotta-dark);
    font-size: 1rem;
    font-weight: 750;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper + .puck-button-container {
    padding: 20px 18px 2px;
    border-radius: 0 0 14px 14px;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) {
    margin-top: 2.25rem;
    padding: 20px 18px 14px;
    border-left-width: 6px;
    border-radius: 14px 14px 0 0;
    font-size: 1.55rem;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper {
    margin-bottom: 2.5rem;
    padding: 0 12px 4px;
    border-left-width: 6px;
    border-radius: 0 0 14px 14px;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper table,
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody {
    display: block;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper thead {
    display: none;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tr {
    display: block;
    padding: 13px 2px;
    border-bottom: 1px solid var(--nitop-line);
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody tr:last-child {
    border-bottom: 0;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td,
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 10px;
    width: auto !important;
    padding: 5px 6px !important;
    border: 0;
    background: transparent !important;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td::before {
    color: var(--nitop-ink-soft);
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.09em;
    line-height: 1.45;
    text-transform: uppercase;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:first-child::before {
    content: 'Time';
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:nth-child(2)::before {
    content: 'Session';
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:last-child::before {
    content: 'Location';
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:first-child {
    color: var(--nitop-terracotta-dark);
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:nth-child(2) {
    color: var(--nitop-ink);
    font-size: 1rem;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:last-child {
    color: var(--nitop-teal-dark);
    font-size: 0.9rem;
  }
  .recur-contact-form,
  .recur-donation-form,
  .recur-donation,
  .puck-contact-widget { padding: 26px 18px !important; }
  .recur-donation .donation-amounts,
  .recur-donation-form .donation-amounts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .recur-donation .donation-other-btn,
  .recur-donation-form .donation-other-btn {
    grid-column: 1 / -1 !important;
  }
  .donation-amount-btn,
  .donation-other-btn {
    padding: 11px 8px !important;
    font-size: 0.9rem !important;
  }
  .puck-grid:has(.recur-contact-form) { gap: 24px; }
  .puck-grid:has(.recur-contact-form) .recur-contact-form { height: auto; }
}

/* ===== Image blocks in grids — white card frame ===== */
.puck-grid .puck-image {
  background: #ffffff;
  border-radius: 18px;
  padding: 8px 8px 0;
  box-shadow: 0 6px 28px -8px rgba(38, 34, 30, 0.20), 0 1px 4px rgba(38, 34, 30, 0.07);
  overflow: hidden;
}
.puck-grid .puck-image .puck-image-img {
  border-radius: 12px !important;
  display: block;
  width: 100%;
}
.puck-grid .puck-image .puck-image-caption {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--nitop-terracotta);
  text-align: center;
  padding: 10px 4px;
  margin: 0;
}

/* ===== Hotel gallery — equal-width image frames ===== */
/* The source photos have different aspect ratios. Give them one shared
   frame so the native three-column grid has even edges and consistent gaps. */
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) {
  gap: 24px !important;
}
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-grid-column {
  min-width: 0;
}
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image-figure {
  display: block;
  width: 100%;
  margin: 0;
}
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image-img {
  display: block;
  width: 100% !important;
  height: 250px !important;
  object-fit: cover !important;
}

/* ===== Home venue photo collage — "The Grand Hotel" section ===== */
/* Scoped via :has() on the pool image alt (no DOM ids on grids). */
/* Override the generic frame above — collage uses overlay gradient captions */
.puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-image {
  position: relative;
  border-radius: 18px;
  background: transparent;
  padding: 0;
  box-shadow: 0 22px 44px -22px rgba(38, 34, 30, 0.45);
}
.puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-image img {
  height: 380px !important;
  border-radius: 18px !important;
  transition: transform 0.5s ease !important;
}
.puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-image:hover img {
  transform: scale(1.06);
}
/* staggered collage rhythm on desktop: outer photos drop down */
@media (min-width: 900px) {
  .puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-grid-column:nth-child(1),
  .puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-grid-column:nth-child(3) {
    padding-top: 44px !important;
  }
}
/* overlay captions on a warm gradient scrim */
.puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-image-caption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  margin: 0;
  padding: 44px 18px 16px;
  text-align: left;
  color: #ffffff;
  font-family: var(--nitop-serif);
  font-size: 1.08rem;
  letter-spacing: 0.01em;
  background: linear-gradient(180deg, rgba(30, 20, 14, 0) 0%, rgba(30, 20, 14, 0.72) 100%);
  border-radius: 0 0 18px 18px;
  pointer-events: none;
}

@media (max-width: 720px) {
  .puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) {
    gap: 18px !important;
  }
  .puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image-img {
    height: 220px !important;
  }
}

/* ===== Photo gallery — curated image grids ===== */
/* The gallery is organized as visual stories rather than one long three-column
   wall. Keep the smaller archive images compact on desktop and browseable in
   two columns on phones. */
.puck-grid:has(img[alt="NITOP 2026 — Photo 1"]),
.puck-grid:has(img[alt="Main pool at The Grand"]) {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid-column,
.puck-grid:has(img[alt="Main pool at The Grand"]) .puck-grid-column {
  min-width: 0;
}
.puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-image-img,
.puck-grid:has(img[alt="Main pool at The Grand"]) .puck-image-img {
  height: 220px !important;
  object-fit: cover !important;
}
.puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-image-caption,
.puck-grid:has(img[alt="Main pool at The Grand"]) .puck-image-caption {
  font-size: 0.76rem;
  line-height: 1.25;
  margin-top: 8px;
}

@media (max-width: 720px) {
  .puck-grid:has(img[alt="NITOP 2026 — Photo 1"]),
  .puck-grid:has(img[alt="Main pool at The Grand"]) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
  .puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-image-img,
  .puck-grid:has(img[alt="Main pool at The Grand"]) .puck-image-img {
    height: 180px !important;
  }
  .puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-image-caption,
  .puck-grid:has(img[alt="Main pool at The Grand"]) .puck-image-caption {
    font-size: 0.68rem;
  }
}

/* ===== Photo Gallery — one clean frame per image =====
   The white .puck-image card already supplies the gallery's border, radius,
   and depth. Remove the generic image-level shadow so photos do not acquire
   a second dark inset outline. */
#puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid:has(.puck-image) {
  gap: 24px !important;
}
#puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid .puck-image-img,
#puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid .puck-image img {
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
#puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid .puck-image {
  border-radius: 18px;
}

@media (max-width: 720px) {
  #puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid:has(.puck-image) {
    gap: 16px !important;
  }
}

/* ===== Videos — full-width responsive YouTube players ===== */
/* The native Video component can fall back to a 300x150 iframe when its
   intrinsic dimensions win over the surrounding grid. Let each player fill
   its column and establish the intended widescreen ratio explicitly. */
.puck-grid:has(.puck-video) .puck-video {
  width: 100% !important;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
.puck-grid:has(.puck-video) .puck-video-inner {
  width: 100% !important;
}
.puck-grid:has(.puck-video) .puck-video-media {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 10px 28px -12px rgba(38, 34, 30, 0.28);
}

@media (max-width: 720px) {
  .puck-grid:has(.puck-video) {
    gap: 32px !important;
  }
}

/* ---------- Hotel & Travel booking journey ---------- */
/*
   Treat the booking instructions as one continuous route: introduce it,
   move through the three stops, then arrive at the reservation action.
*/
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) {
  max-width: var(--nitop-max);
  margin-top: 3.2rem;
  margin-bottom: 0;
  padding: 30px 24px 4px;
  box-sizing: border-box;
  border: 1px solid var(--nitop-line);
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  background: linear-gradient(135deg, #fffaf4 0%, #f7eee3 100%);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text {
  max-width: var(--nitop-max);
  padding: 0 24px 18px;
  box-sizing: border-box;
  border-left: 1px solid var(--nitop-line);
  border-right: 1px solid var(--nitop-line);
  background: linear-gradient(135deg, #fffaf4 0%, #f7eee3 100%);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid {
  position: relative;
  z-index: 0;
  max-width: var(--nitop-max);
  padding: 16px 24px 24px;
  box-sizing: border-box;
  border-left: 1px solid var(--nitop-line);
  border-right: 1px solid var(--nitop-line);
  background: linear-gradient(135deg, #fffaf4 0%, #f7eee3 100%);
  overflow: visible;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 9%;
  right: 9%;
  height: 6px;
  border-top: 2px dashed rgba(193, 80, 46, 0.55);
  border-bottom: 2px dashed rgba(226, 159, 76, 0.42);
  transform: translateY(-50%);
}
#puck-content:has(a[href*="book.passkey.com"]) > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid::after {
  content: "✈";
  position: absolute;
  z-index: 2;
  top: calc(50% - 21px);
  right: 3%;
  color: var(--nitop-terracotta);
  font-family: Georgia, serif;
  font-size: 1.8rem;
  line-height: 1;
  transform: rotate(8deg);
  text-shadow: 0 2px 0 #fffaf4;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid .puck-grid-column {
  position: relative;
  z-index: 1;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid + .puck-button-container {
  position: relative;
  z-index: 1;
  max-width: var(--nitop-max);
  margin-top: 0;
  margin-bottom: 0;
  padding: 0 24px 30px;
  box-sizing: border-box;
  border: 1px solid var(--nitop-line);
  border-top: 0;
  border-radius: 0 0 20px 20px;
  background: linear-gradient(135deg, #fffaf4 0%, #f7eee3 100%);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid + .puck-button-container .puck-button {
  box-shadow: 0 8px 18px -10px rgba(158, 63, 34, 0.7);
}

@media (max-width: 720px) {
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) {
    padding: 24px 20px 4px;
    border-radius: 16px 16px 0 0;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text {
    padding: 0 20px 16px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid {
    padding: 12px 20px 20px 44px;
    gap: 18px !important;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid::before {
    top: 24px;
    bottom: 24px;
    left: 22px;
    right: auto;
    width: 4px;
    height: auto;
    border-top: 0;
    border-right: 2px dashed rgba(193, 80, 46, 0.55);
    border-bottom: 0;
    border-left: 2px dashed rgba(226, 159, 76, 0.42);
    transform: none;
  }
  #puck-content:has(a[href*="book.passkey.com"]) > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid::after {
    top: auto;
    right: auto;
    bottom: 0;
    left: 10px;
    font-size: 1.45rem;
    transform: rotate(90deg);
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid + .puck-button-container {
    padding: 0 20px 24px;
    border-radius: 0 0 16px 16px;
  }
}

/* ---------- Sponsors & Partners community showcase ---------- */
/*
   Give the existing supporter list a distinct editorial structure: a quiet
   introduction band followed by two equal recognition profiles. The
   supporter variant keeps this treatment scoped to this page's known cards.
*/
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) {
  max-width: var(--nitop-max);
  margin: 3.2rem auto 0;
  padding: 42px 44px 0;
  box-sizing: border-box;
  border: 1px solid rgba(93, 136, 151, 0.3);
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  background: linear-gradient(120deg, var(--nitop-teal-pale) 0%, #f8f5ee 100%);
  text-align: left !important;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter)::before {
  content: "OUR COMMUNITY OF SUPPORT";
  display: block;
  margin-bottom: 12px;
  color: var(--nitop-teal-dark);
  font-family: var(--nitop-sans);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  line-height: 1.3;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter)::after {
  margin: 16px 0 0;
  background: var(--nitop-terracotta);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 10px 44px 28px;
  box-sizing: border-box;
  border-right: 1px solid rgba(93, 136, 151, 0.3);
  border-left: 1px solid rgba(93, 136, 151, 0.3);
  background: linear-gradient(120deg, var(--nitop-teal-pale) 0%, #f8f5ee 100%);
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.75;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 4px 44px 44px;
  box-sizing: border-box;
  border-right: 1px solid rgba(93, 136, 151, 0.3);
  border-bottom: 1px solid rgba(93, 136, 151, 0.3);
  border-left: 1px solid rgba(93, 136, 151, 0.3);
  border-radius: 0 0 22px 22px;
  background: linear-gradient(120deg, var(--nitop-teal-pale) 0%, #f8f5ee 100%);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid .puck-grid-column {
  min-width: 0;
}
.puck-card--supporter {
  position: relative;
  overflow: hidden;
  padding: 34px 30px 30px;
  border-top: 4px solid var(--nitop-terracotta);
  border-radius: 16px;
  box-shadow: 0 14px 30px -18px rgba(38, 34, 30, 0.3);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid > .puck-grid-column:nth-child(2) .puck-card--supporter {
  border-top-color: var(--nitop-teal);
}
.puck-card--supporter::after {
  content: "NITOP PARTNER";
  position: absolute;
  top: 22px;
  right: 24px;
  color: rgba(93, 136, 151, 0.52);
  font-family: var(--nitop-sans);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.puck-card--supporter .puck-card-eyebrow {
  margin-bottom: 14px;
  color: var(--nitop-terracotta);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid > .puck-grid-column:nth-child(2) .puck-card--supporter .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--supporter .puck-card-title {
  max-width: 82%;
  margin-bottom: 14px;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.22;
}
.puck-card--supporter .puck-card-description {
  font-size: 0.98rem;
  line-height: 1.7;
}

@media (max-width: 720px) {
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) {
    margin-top: 2.4rem;
    padding: 32px 24px 0;
    border-radius: 18px 18px 0 0;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter)::before {
    font-size: 0.64rem;
    letter-spacing: 0.14em;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text {
    padding: 10px 24px 22px;
    font-size: 0.98rem;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid {
    padding: 4px 24px 28px;
    gap: 18px;
    border-radius: 0 0 18px 18px;
  }
  .puck-card--supporter {
    padding: 30px 24px 26px;
  }
  .puck-card--supporter::after {
    top: 20px;
    right: 18px;
    font-size: 0.52rem;
  }
  .puck-card--supporter .puck-card-title {
    max-width: 78%;
  }
}

/* ---------- BISTOPS contact callout ---------- */
/* A compact, action-led contact row is more useful here than a stretched
   notice card with a low-contrast text link. */
.puck-card--bistops-contact {
  height: auto !important;
  min-height: 0 !important;
  padding: 28px 32px;
  border: 1px solid rgba(93, 136, 151, 0.28);
  border-left: 5px solid var(--nitop-teal);
  border-radius: 16px;
  background: linear-gradient(135deg, #f1f8f8 0%, #fffaf4 100%);
  box-shadow: 0 14px 30px -18px rgba(38, 34, 30, 0.26);
}
.puck-card--bistops-contact > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "eyebrow action"
    "title action"
    "description action";
  align-items: center;
  column-gap: 30px;
}
.puck-card--bistops-contact .puck-card-eyebrow {
  grid-area: eyebrow;
  margin-bottom: 8px;
  color: var(--nitop-teal-dark);
}
.puck-card--bistops-contact .puck-card-title {
  grid-area: title;
  margin-bottom: 6px;
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
}
.puck-card--bistops-contact .puck-card-description {
  grid-area: description;
  color: var(--nitop-ink-soft);
  font-family: var(--nitop-sans);
  font-size: 0.98rem;
  line-height: 1.5;
}
.puck-card--bistops-contact > div > div {
  grid-area: action;
  align-self: center;
}
.puck-card--bistops-contact .puck-card-button {
  margin: 0;
  padding: 12px 24px;
  background: var(--nitop-terracotta);
  color: #ffffff;
  font-weight: 700;
  white-space: nowrap;
}
.puck-card--bistops-contact .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
  color: #ffffff;
}

@media (max-width: 720px) {
  .puck-card--bistops-contact {
    padding: 26px 22px 24px;
  }
  .puck-card--bistops-contact > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  .puck-card--bistops-contact .puck-card-eyebrow {
    margin-bottom: 8px;
  }
  .puck-card--bistops-contact .puck-card-title {
    margin-bottom: 6px;
  }
  .puck-card--bistops-contact .puck-card-description {
    margin-bottom: 18px;
  }
  .puck-card--bistops-contact > div > div {
    align-self: flex-start;
  }
}

/* ---------- NITOP History chapter rail ---------- */
/*
   The historical record stays complete and in order, but each source section
   becomes a readable chapter on one continuous rail. This avoids both the
   wall-of-text effect and a repeated card for every paragraph.
*/
#puck-content:has(.puck-card--history-chapter) {
  counter-reset: history-chapter;
}
#puck-content .puck-grid:has(.puck-card--history-chapter) {
  max-width: var(--nitop-max);
  padding: 0 24px 48px 52px;
  box-sizing: border-box;
  gap: 0 !important;
}
#puck-content .puck-grid:has(.puck-card--history-chapter) > .puck-grid-column {
  position: relative;
  min-width: 0;
  padding-left: 56px;
  border-left: 2px solid var(--nitop-line);
}
.puck-grid-column > .puck-card--history-chapter {
  position: relative;
  counter-increment: history-chapter;
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0;
  padding: 34px 0 44px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--nitop-line);
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}
.puck-card--history-chapter::before {
  content: counter(history-chapter, decimal-leading-zero);
  position: absolute;
  top: 30px;
  left: -82px;
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 5px solid var(--nitop-cream);
  border-radius: 50%;
  background: var(--nitop-terracotta);
  color: #ffffff;
  font-family: var(--nitop-sans);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  box-shadow: 0 3px 12px -6px rgba(38, 34, 30, 0.45);
}
.puck-card--history-chapter:nth-child(even)::before {
  background: var(--nitop-teal-dark);
}
.puck-card--history-chapter:last-child {
  border-bottom: 0;
}
.puck-card--history-chapter:hover {
  transform: none;
  box-shadow: none;
}
.puck-card--history-chapter .puck-card-title {
  max-width: 820px;
  margin-bottom: 18px;
  color: var(--nitop-ink);
  font-size: clamp(1.35rem, 2.3vw, 1.78rem);
  line-height: 1.22;
}
.puck-card--history-chapter .puck-card-description {
  max-width: 820px;
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.82;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

@media (max-width: 720px) {
  #puck-content .puck-grid:has(.puck-card--history-chapter) {
    padding: 0 24px 32px 42px;
  }
  #puck-content .puck-grid:has(.puck-card--history-chapter) > .puck-grid-column {
    padding-left: 38px;
  }
  .puck-card--history-chapter {
    padding: 28px 0 34px;
  }
  .puck-card--history-chapter::before {
    top: 24px;
    left: -65px;
    width: 44px;
    height: 44px;
    border-width: 4px;
    font-size: 0.64rem;
  }
  .puck-card--history-chapter .puck-card-title {
    margin-bottom: 14px;
    font-size: 1.3rem;
  }
  .puck-card--history-chapter .puck-card-description {
    font-size: 0.96rem;
    line-height: 1.75;
  }
}

/* ---------- Past NITOPs: year-by-year editorial identities ---------- */
/*
   Each yearly archive keeps the same usable information architecture while
   one verified archive section becomes that edition's visual signature.
   The signature also scopes year-specific hero and accent treatments.
*/
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stats {
  margin-top: 12px;
  padding: 34px 34px 38px;
  border: 1px solid var(--nitop-line);
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(246, 238, 228, 0.92));
  box-shadow: 0 18px 40px -32px rgba(38, 34, 30, 0.42);
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stats-title {
  margin-bottom: 24px;
  font-size: clamp(1.55rem, 2.8vw, 2rem);
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stat-card {
  position: relative;
  overflow: hidden;
  padding: 26px 20px;
  border-radius: 15px;
  box-shadow: none;
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stat-card:nth-child(1) {
  border-top: 4px solid var(--nitop-terracotta);
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stat-card:nth-child(2) {
  border-top: 4px solid var(--nitop-teal);
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stat-card:nth-child(3) {
  border-top: 4px solid var(--nitop-amber);
}

.puck-grid-column > [class*="puck-card--archive-feature-"] {
  position: relative;
  flex: 0 0 auto !important;
  min-height: 230px !important;
  height: auto !important;
  overflow: hidden !important;
  padding: 42px 44px;
  border: 0;
  border-radius: 22px;
  box-shadow: 0 24px 48px -30px rgba(38, 34, 30, 0.7);
}
.puck-grid-column > [class*="puck-card--archive-feature-"] > div {
  position: relative;
  z-index: 1;
  max-width: 790px;
}
.puck-grid-column > [class*="puck-card--archive-feature-"]::after {
  position: absolute;
  right: 24px;
  top: -34px;
  z-index: 0;
  color: rgba(255, 255, 255, 0.09);
  font-family: var(--nitop-serif);
  font-size: clamp(6.5rem, 14vw, 11rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.06em;
  pointer-events: none;
}
.puck-grid-column > [class*="puck-card--archive-feature-"]:hover {
  transform: none;
  box-shadow: 0 24px 48px -30px rgba(38, 34, 30, 0.7);
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-eyebrow {
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0.15em;
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-title {
  max-width: 680px;
  margin-bottom: 16px;
  color: #ffffff;
  font-size: clamp(1.65rem, 3.4vw, 2.45rem);
  line-height: 1.12;
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-description {
  max-width: 740px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.02rem;
  line-height: 1.78;
  white-space: pre-line;
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-button {
  margin-top: 22px;
  background: #ffffff;
  color: var(--nitop-ink);
  box-shadow: 0 10px 24px -16px rgba(0, 0, 0, 0.6);
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-button:hover {
  background: var(--nitop-amber-pale);
  color: var(--nitop-terracotta-dark);
}

.puck-card--archive-feature-2026 {
  background: linear-gradient(135deg, #8f3925 0%, var(--nitop-terracotta) 55%, #d2873d 100%);
}
.puck-card--archive-feature-2026::after { content: "2026"; }
.puck-card--archive-feature-2025 {
  background: linear-gradient(135deg, #294e58 0%, var(--nitop-teal-dark) 52%, #6d8990 100%);
}
.puck-card--archive-feature-2025::after { content: "2025"; }
.puck-card--archive-feature-2024 {
  background: linear-gradient(135deg, #3e3027 0%, #76503b 52%, #c57d38 100%);
}
.puck-card--archive-feature-2024::after { content: "2024"; }
.puck-card--archive-feature-2023 {
  background: linear-gradient(135deg, #253b42 0%, #416c73 50%, #b45438 100%);
}
.puck-card--archive-feature-2023::after { content: "2023"; }
.puck-card--archive-feature-2022 {
  background: linear-gradient(135deg, #7f3729 0%, #b85d37 48%, #d79a43 100%);
}
.puck-card--archive-feature-2022::after { content: "2022"; }
.puck-card--archive-feature-2021 {
  background:
    radial-gradient(circle at 18% 20%, rgba(158, 206, 216, 0.24) 0 2px, transparent 3px) 0 0 / 24px 24px,
    linear-gradient(135deg, #172d36 0%, #315c68 58%, #744a3b 100%);
}
.puck-card--archive-feature-2021::after { content: "2021"; }
.puck-card--archive-feature-2020 {
  background: linear-gradient(110deg, #25211e 0%, #25211e 34%, #75402e 34%, #a4492f 72%, #d07935 100%);
}
.puck-card--archive-feature-2020::after { content: "2020"; }
.puck-card--archive-feature-2019 {
  background: linear-gradient(135deg, #332a23 0%, #625344 52%, #93613e 100%);
}
.puck-card--archive-feature-2019::after { content: "2019"; }
.puck-card--archive-feature-2018 {
  background:
    linear-gradient(135deg, rgba(44, 36, 30, 0.96), rgba(105, 74, 48, 0.96)),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 5px);
}
.puck-card--archive-feature-2018::after { content: "2018"; }

#puck-content:has(.puck-card--archive-feature-2026) .puck-hero--minimal {
  background: linear-gradient(140deg, #253238 0%, #78412f 48%, #c1502e 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2025) .puck-hero--minimal {
  background: linear-gradient(140deg, #1f343a 0%, #365f68 54%, #9a5038 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2024) .puck-hero--minimal {
  background: linear-gradient(140deg, #2d2722 0%, #654934 55%, #b66f32 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2023) .puck-hero--minimal {
  background: linear-gradient(140deg, #203238 0%, #3f666c 52%, #a94d35 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2022) .puck-hero--minimal {
  background: linear-gradient(140deg, #27383b 0%, #536e69 50%, #b35b35 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2021) .puck-hero--minimal {
  background:
    radial-gradient(circle at 20% 30%, rgba(160, 213, 224, 0.16), transparent 30%),
    linear-gradient(140deg, #152a32 0%, #315662 58%, #704334 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2020) .puck-hero--minimal {
  background: linear-gradient(110deg, #231f1c 0%, #231f1c 42%, #6c3929 42%, #be512f 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2019) .puck-hero--minimal {
  background: linear-gradient(140deg, #2c261f 0%, #55483b 54%, #8b5839 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2018) .puck-hero--minimal {
  background: linear-gradient(140deg, #241f1b 0%, #483a2e 55%, #8d603e 100%) !important;
}

#puck-content:has(.puck-card--archive-feature-2025) .puck-card--archive-resource,
#puck-content:has(.puck-card--archive-feature-2021) .puck-card--archive-resource {
  border-top-color: var(--nitop-teal);
}
#puck-content:has(.puck-card--archive-feature-2022) .puck-card--archive-resource,
#puck-content:has(.puck-card--archive-feature-2024) .puck-card--archive-resource {
  border-top-color: var(--nitop-terracotta);
}

@media (max-width: 720px) {
  #puck-content:has([class*="puck-card--archive-feature-"]) .puck-stats {
    padding: 28px 18px 30px;
    border-radius: 18px;
  }
  .puck-grid-column > [class*="puck-card--archive-feature-"] {
    min-height: 0 !important;
    padding: 32px 24px 34px;
    border-radius: 18px;
  }
  .puck-grid-column > [class*="puck-card--archive-feature-"]::after {
    right: 14px;
    top: -12px;
    font-size: 5.4rem;
  }
  .puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-title {
    max-width: 85%;
    font-size: 1.55rem;
  }
  .puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-description {
    font-size: 0.96rem;
    line-height: 1.7;
  }
}



            /* Base styles */
            * {
              margin: 0;
              padding: 0;
              box-sizing: border-box;
            }
            
            body {
              font-family: Inter;
              line-height: 1.6;
              color: var(--color-text, #333);
              background-color: var(--color-background, #ffffff);
            }

            /* Global image safety — prevents oversized AMS/Quill images from breaking layouts */
            img {
              max-width: 100%;
              height: auto;
            }

            /* Public search: uses theme tokens and stays compact in either
               chrome region while allowing the full results page to breathe. */
            .site-search { position:relative; display:flex; align-items:center; gap:.4rem; min-width:0; }
            .site-search-input, .public-search-form input { min-width:0; width:100%; padding:.5rem .65rem; border:1px solid var(--color-border,#d1d5db); border-radius:.375rem; color:var(--color-text,#111827); background:var(--color-background,#fff); font:inherit; }
            .site-search-input[data-input-background="transparent"] { background:transparent; }
            .site-search-button, .public-search-form button { border:0; border-radius:.375rem; padding:.5rem .7rem; background:var(--color-primary,#2563eb); color:var(--color-on-primary,#fff); font:inherit; cursor:pointer; }
            .site-search-icon-button { min-width:2.4rem; min-height:2.4rem; padding:.35rem; font-size:1.35rem; line-height:1; }
            .site-search-suggestions { position:absolute; z-index:100; top:calc(100% + .3rem); left:0; right:0; max-height:18rem; overflow:auto; margin:0; padding:.25rem; list-style:none; border:1px solid var(--color-border,#d1d5db); border-radius:.375rem; background:var(--color-background,#fff); box-shadow:0 8px 20px rgba(0,0,0,.15); }
            .site-search-suggestion { padding:.55rem .65rem; cursor:pointer; color:var(--color-text,#111827); border-radius:.25rem; }
            .site-search-suggestion[aria-selected="true"], .site-search-suggestion:hover { background:var(--color-surface,#f3f4f6); }
            .public-search-page { max-width:900px; margin:0 auto; padding:3rem 1.25rem; color:var(--color-text,#111827); }
            .public-search-page h1 { margin:0 0 1rem; font-size:2rem; }
            .public-search-form { display:flex; gap:.6rem; align-items:end; flex-wrap:wrap; margin-bottom:1.5rem; }
            .public-search-form label { width:100%; font-weight:600; }
            .public-search-form input { flex:1 1 18rem; }
            .public-search-results { display:grid; gap:1rem; padding:0; list-style:none; }
            .public-search-result { padding:1rem; border:1px solid var(--color-border,#e5e7eb); border-radius:.5rem; }
            .public-search-result h2 { margin:.35rem 0; font-size:1.2rem; }.public-search-result p { margin:.35rem 0 .65rem; color:var(--color-textSecondary,#4b5563); }
            .public-search-result a, .public-search-pages a { color:var(--color-primary,#2563eb); }.public-search-type,.public-search-strength { font-size:.8rem; }.public-search-strength { float:right; color:var(--color-textSecondary,#4b5563); }
            .public-search-pages { display:flex; justify-content:center; gap:1rem; margin-top:1.5rem; }
            @media (max-width: 640px) { .site-search { width:100%; }.public-search-form { align-items:stretch; }.public-search-form button { width:100%; } }
            
            /* Quill alignment styles for rich text content */
            .ql-align-center {
              text-align: center;
            }
            .ql-align-right {
              text-align: right;
            }
            .ql-align-justify {
              text-align: justify;
            }
            .ql-indent-1 { padding-left: 3em; }
            .ql-indent-2 { padding-left: 6em; }
            .ql-indent-3 { padding-left: 9em; }
            .ql-indent-4 { padding-left: 12em; }
            .ql-indent-5 { padding-left: 15em; }
            
            /* Quill font families - matches Quill whitelist */
            .ql-font-arial { font-family: Arial, sans-serif; }
            .ql-font-helvetica { font-family: Helvetica, sans-serif; }
            .ql-font-georgia { font-family: Georgia, serif; }
            .ql-font-times-new-roman { font-family: 'Times New Roman', serif; }
            .ql-font-courier-new { font-family: 'Courier New', monospace; }
            .ql-font-verdana { font-family: Verdana, sans-serif; }
            .ql-font-comic-sans { font-family: 'Comic Sans MS', cursive; }
            .ql-font-lucida { font-family: 'Lucida Console', monospace; }
            .ql-font-inter { font-family: 'Inter', sans-serif; }
            .ql-font-poppins { font-family: 'Poppins', sans-serif; }
            .ql-font-permanent-marker { font-family: 'Permanent Marker', cursive; }
            .ql-font-theme-body { font-family: var(--font-primary, system-ui, sans-serif); }
            .ql-font-theme-header { font-family: var(--font-secondary, var(--font-primary, system-ui)); }
            .ql-font-serif { font-family: Georgia, 'Times New Roman', serif; }
            .ql-font-monospace { font-family: 'Courier New', Consolas, monospace; }
            
            /* Quill code blocks */
            pre.ql-syntax,
            .rich-text-content pre,
            .puck-text pre {
              background-color: var(--color-surface, #f5f5f5);
              color: var(--color-text, #333);
              padding: 12px 16px;
              border-radius: 6px;
              overflow-x: auto;
              font-family: 'Courier New', Consolas, monospace;
              font-size: 0.9em;
              line-height: 1.5;
              margin: 16px 0;
              white-space: pre-wrap;
              word-wrap: break-word;
            }
            
            /* Quill inline code */
            .rich-text-content code,
            .puck-text code {
              background-color: var(--color-surface, #f0f0f0);
              padding: 2px 6px;
              border-radius: 3px;
              font-family: 'Courier New', Consolas, monospace;
              font-size: 0.9em;
            }
            
            /* Quill blockquote */
            .rich-text-content blockquote,
            .puck-text blockquote,
            blockquote.ql-blockquote {
              border-left: 4px solid var(--color-primary, #3b82f6);
              padding-left: 16px;
              margin: 16px 0;
              font-style: italic;
              color: var(--color-text-secondary, #666);
            }
            
            /* Quill paragraph spacing */
            p {
              margin-bottom: 15px;
            }
            p:last-child {
              margin-bottom: 0;
            }
            
            /* Rich text content - Quill formatting styles */
            .rich-text-content ul,
            .puck-text ul {
              margin: 15px 0;
              padding-left: 1.5em;
              list-style-type: disc;
              list-style-position: outside;
            }
            
            .rich-text-content ol,
            .puck-text ol {
              margin: 15px 0;
              padding-left: 1.5em;
              list-style-type: decimal;
              list-style-position: outside;
            }
            
            .rich-text-content li,
            .puck-text li {
              margin-bottom: 8px;
              display: list-item;
              padding-left: 0.5em;
            }
            
            /* Nested lists */
            .rich-text-content ul ul,
            .puck-text ul ul {
              list-style-type: circle;
              margin-top: 8px;
              margin-bottom: 8px;
            }
            
            .rich-text-content ul ul ul,
            .puck-text ul ul ul {
              list-style-type: square;
            }
            
            .rich-text-content ol ol,
            .puck-text ol ol {
              list-style-type: lower-alpha;
              margin-top: 8px;
              margin-bottom: 8px;
            }
            
            .rich-text-content ol ol ol,
            .puck-text ol ol ol {
              list-style-type: lower-roman;
            }
            
            /* Responsive Grid - matches Puck editor behavior */
            /* Uses CSS variable for column count set via inline style */
            .puck-grid {
              display: grid;
              gap: 1rem;
            }
            .puck-grid.responsive-grid {
              grid-template-columns: 1fr;  /* Mobile: single column */
            }
            @media (min-width: 768px) {
              .puck-grid.responsive-grid {
                grid-template-columns: var(--grid-template, repeat(var(--grid-columns, 2), 1fr));
              }
            }
            .puck-grid-column {
              /* Structural child wrapper: content components own appearance. */
            }
            
            /* Header Navigation */
            .site-header {
              position: sticky;
              top: 0; z-index: 1000;
              background: var(--color-surface, #f5f5f5);
              
              padding: 1rem;
              border-bottom: 1px solid var(--color-border, #ddd);
              
              
            }
            
            /* Background image layer — sits above bg color, below all content (same as React approach) */
            
            
            .site-header nav > ul {
              list-style: none;
              display: flex;
              flex-direction: row;
              gap: 2rem;
              max-width: var(--header-max-width, var(--content-max-width, 1200px));
              margin: 0 auto;
              align-items: center;
              justify-content: center;
            }
            
            .site-header nav a,
            .site-header nav a:link,
            .site-header nav a:visited,
            .site-header nav a:hover,
            .site-header nav a:active,
            .site-header .nav-link,
            .site-header .nav-link-dropdown,
            .site-header .nav-menu a {
              color: var(--color-text, #333);
              text-decoration: none;
            }
            
            .site-header nav a:hover,
            .site-header .nav-link:hover,
            .site-header .nav-link-dropdown:hover {
              opacity: 0.8;
              
              text-decoration: none;
            }
            
            /* Navigation Style variants */
            .site-header .nav-link,
                  .site-header .nav-link-dropdown {
                    padding: 0.5rem 1rem;
                    border-radius: 0.375rem;
                    transition: background-color 0.2s ease;
                  }
                  .site-header .nav-link:hover,
                  .site-header .nav-link-dropdown:hover {
                    background-color: rgba(0,0,0,0.05);
                    opacity: 1;
                  }
            
            /* Footer */
            .site-footer {
              background: var(--color-surface, #f5f5f5);
              color: var(--color-text, #333);
              padding: 2rem 1rem 1rem;
              margin-top: 4rem;
              border-top: 1px solid var(--color-border, #ddd);
              
            }
            
            .site-footer a {
              color: var(--color-primary, #1976d2);
              text-decoration: none;
            }
            
            .site-footer a:hover {
              opacity: 0.8;
            }
            
            /* Ensure all footer navigation links have no underline */
            .site-footer ul a,
            .site-footer nav a,
            .site-footer li a {
              text-decoration: none;
            }
            
            /* Main content */
            main {
              max-width: var(--content-max-width, 1200px);
              margin: 0 auto;
              padding: 2rem;
            }

            /* A leading hero sits flush beneath the site header by cancelling main's
               2rem top padding. This applies in every content-width mode (not just
               full width). Only the FIRST child matches, so a hero placed lower on the
               page is never pulled upward. */
            #puck-content > .puck-hero:first-child {
              margin-top: -2rem;
            }
            
            h1, h2, h3, h4, h5, h6 {
              color: var(--color-heading, var(--color-text, #333));
              /* Parity with the editor/preview: .puck-root h1–h6 use the theme's
                 header font (--font-secondary). Without this, published headings
                 silently fall back to the body font. */
              font-family: var(--font-secondary, var(--font-primary, system-ui));
            }

            h1 {
              margin-bottom: 1rem;
            }
            
            .published-note {
              color: var(--color-textSecondary, #666);
              font-size: 0.875rem;
              margin-bottom: 2rem;
            }
            
            .content-preview {
              background: var(--color-surface, #f9f9f9);
              padding: 2rem;
              border-radius: 8px;
              border: 1px solid var(--color-border, #ddd);
            }
            
            /* @pqina/flip v1.8.4 - Vendor CSS for Flip Counter */
            .tick{box-sizing:border-box;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:default;position:relative;z-index:1;line-height:1.4}.tick *{box-sizing:inherit}.tick [data-view]{max-width:100%}.tick span[data-view]{display:inline-block}.tick .tick-credits{position:absolute;right:0;bottom:0;opacity:.4;text-decoration:none;font-size:11px;color:inherit}.tick [data-layout~=pad]{margin:-.25em}.tick [data-layout~=pad]>*{margin:.25em}.tick [data-layout~=horizontal]{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center}.tick [data-layout~=horizontal][data-layout~=baseline]{-ms-flex-align:baseline;align-items:baseline}.tick [data-layout~=horizontal][data-layout~=center]{-ms-flex-pack:center;justify-content:center}.tick [data-layout~=horizontal][data-layout~=right]{-ms-flex-pack:end;justify-content:flex-end}.tick [data-layout~=horizontal][data-layout~=left]{-ms-flex-pack:start;justify-content:flex-start}.tick [data-layout~=horizontal][data-layout~=fill],.tick [data-layout~=horizontal][data-layout~=stretch]{-ms-flex-line-pack:stretch;align-content:stretch;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.tick [data-layout~=horizontal][data-layout~=fill]>*,.tick [data-layout~=horizontal][data-layout~=stretch]>*{-ms-flex:1 0 0px;flex:1 0 0;width:100%}.tick [data-layout~=horizontal][data-layout~=multi-line]{-ms-flex-wrap:wrap;flex-wrap:wrap}.tick [data-layout~=horizontal][data-layout~=fit]{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-line-pack:center;align-content:center;white-space:nowrap;-ms-flex-pack:start;justify-content:flex-start}.tick [data-layout~=vertical]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.tick [data-layout~=vertical][data-layout~=top]{-ms-flex-pack:start;justify-content:flex-start}.tick [data-layout~=vertical][data-layout~=bottom]{-ms-flex-pack:end;justify-content:flex-end;min-height:100%}.tick [data-layout~=vertical][data-layout~=middle]{-ms-flex-pack:center;justify-content:center;min-height:100%}.tick [data-layout~=vertical][data-layout~=left]{-ms-flex-align:start;align-items:flex-start}.tick [data-layout~=vertical][data-layout~=right]{-ms-flex-align:end;align-items:flex-end}.tick [data-layout~=vertical][data-layout~=center]{text-align:center}.tick [data-layout~=vertical][data-layout~=fill],.tick [data-layout~=vertical][data-layout~=stretch]{-ms-flex-align:stretch;align-items:stretch;min-height:100%}.tick [data-layout~=vertical][data-layout~=fill]>*,.tick [data-layout~=vertical][data-layout~=stretch]>*{-ms-flex:1 0 0px;flex:1 0 0}.tick [data-layout~=vertical]>*+*{margin-top:.5em}.tick [data-layout~=overlay]{position:relative}.tick [data-layout~=overlay]>*{margin:0}.tick [data-layout~=overlay][data-layout~=center]{text-align:center}.tick [data-layout~=overlay][data-layout~=left]{text-align:left}.tick [data-layout~=overlay][data-layout~=right]{text-align:right}.tick [data-layout~=overlay]>[data-overlay=fill],.tick [data-layout~=overlay]>[data-overlay=stretch]{position:absolute;left:0;right:0;top:0;bottom:0}.tick [data-layout~=overlay]>[data-overlay=center]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;left:0;right:0;top:0;bottom:0}.tick-flip{position:relative;text-align:center}.tick-flip *{border-radius:inherit;white-space:pre;letter-spacing:inherit;text-indent:inherit}.tick-flip-front{border-bottom-left-radius:0;border-bottom-right-radius:0}.tick-flip-back{border-top-left-radius:0;border-top-right-radius:0}.tick-flip-spacer{display:block;visibility:hidden}.tick-flip-shadow{position:absolute;left:1px;right:1px;top:1px;bottom:1px;color:transparent!important;background:transparent!important}.tick-flip-shadow-top{bottom:calc(50% - 1px)}.tick-flip-shadow-bottom{top:calc(50% + 1px)}.tick-flip-card-shadow{position:absolute;left:.15em;right:.15em;bottom:.125em;height:.5em;background-color:transparent;border-radius:0;opacity:0;transform-origin:0 100%;box-shadow:0 .125em .25em rgba(0,0,0,.5),0 .125em .5em rgba(0,0,0,.75);z-index:0}.tick-flip-card{position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;perspective:4em}.tick-flip-panel-back,.tick-flip-panel-front{position:absolute;left:0;width:100%;height:51%;backface-visibility:hidden;transform-style:preserve-3d}.tick-flip-panel-back-text,.tick-flip-panel-front-text{position:absolute;left:-1px;top:0;right:-1px;height:100%;overflow:hidden}.tick-flip-panel-text-wrapper{position:absolute;left:0;top:0;right:0;height:100%}.tick-flip-panel-back-text .tick-flip-panel-text-wrapper{height:200%;top:-100%}.tick-flip-panel-front{transform-origin:center bottom;top:0;z-index:2;box-shadow:inset 0 1px hsla(0,0%,100%,.05)}.tick-flip-panel-back{transform-origin:center top;top:50%;z-index:1;box-shadow:inset 0 -1px rgba(0,0,0,.1)}.tick-flip-panel-back:after{z-index:1;content:"";position:absolute;left:0;top:0;width:100%;height:100%;background-image:linear-gradient(180deg,rgba(0,0,0,.3) 1px,rgba(0,0,0,.15) 0,transparent 30%)}.tick-flip-panel-back-shadow{z-index:2}.tick-flip-panel-back-highlight{z-index:3}.tick-flip-panel-back-highlight,.tick-flip-panel-back-shadow{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.tick-flip-panel-back-highlight,.tick-flip-panel-back-shadow,.tick-flip-panel-front-shadow{position:absolute;left:0;top:0;right:0;bottom:0;opacity:0}.tick-flip-panel-front-shadow{background-image:linear-gradient(0deg,rgba(0,0,0,.8),rgba(0,0,0,.3))}.tick-flip-panel-back-shadow{background-image:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,.5))}.tick-flip-panel-back-highlight{background-image:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,.3))}.tick [data-style*="shadow:inner"],.tick [data-style*="shadow:inner"] .tick-flip-card-shadow,.tick [data-style*="shadow:none"] .tick-flip-card-shadow,.tick [data-style*="shadow:none"] .tick-flip-panel-back,.tick [data-style*="shadow:none"] .tick-flip-panel-front,.tick [data-style*="shadow:none"] .tick-flip-shadow{box-shadow:none}.tick [data-style*="shadow:none"] .tick-flip-back:after,.tick [data-style*="shadow:none"] .tick-flip-panel-back-shadow,.tick [data-style*="shadow:none"] .tick-flip-panel-back-text:after,.tick [data-style*="shadow:none"] .tick-flip-panel-front-shadow{background-image:none}.tick [data-style*="rounded:none"]{border-radius:0}.tick [data-style*="rounded:panels"] .tick-flip-front,.tick [data-style*="rounded:panels"] .tick-flip-shadow-bottom{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.tick [data-style*="rounded:panels"] .tick-flip-back,.tick [data-style*="rounded:panels"] .tick-flip-panel-back:after,.tick [data-style*="rounded:panels"] .tick-flip-shadow-top{border-top-left-radius:inherit;border-top-right-radius:inherit}.tick-flip{margin-left:.0625em;margin-right:.0625em;min-width:1.125em;border-radius:.125em;letter-spacing:.25em;text-indent:.25em}.tick-flip-panel{color:#edebeb;background-color:#333232}.tick-flip-shadow{box-shadow:0 .125em .3125em rgba(0,0,0,.25),0 .02125em .06125em rgba(0,0,0,.25)}
            
            /* Custom Flip Counter Styling */
            .tick {
              font-size: 1rem;
              white-space: nowrap;
              font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            }

            .tick-flip, .tick-text-inline {
              font-size: 2.5em;
            }

            .tick-label {
              margin-top: 1em;
              font-size: 1em;
              color: var(--color-textSecondary, #696996);
              text-transform: uppercase;
              letter-spacing: 0.1em;
            }

            .tick-char {
              width: 1.5em;
            }

            .tick-text-inline {
              display: inline-block;
              text-align: center;
              min-width: 1em;
              color: var(--color-text, #15151e);
            }

            .tick-text-inline + .tick-text-inline {
              margin-left: -0.325em;
            }

            .tick-group {
              margin: 0 0.5em;
              text-align: center;
            }

            /* Flip Clock Panel - Classic Segmented Display Style */
            .tick-flip-panel {
              color: #ffffff !important;
              background-color: #2b2b2b !important;
              border-radius: 0.15em !important;
              box-shadow: 
                0 0.05em 0 rgba(0, 0, 0, 0.6),
                0 0.15em 0.15em rgba(0, 0, 0, 0.4) !important;
            }

            /* Add subtle gradient for 3D depth effect */
            .tick-flip-panel::before {
              background: linear-gradient(
                to bottom,
                rgba(255, 255, 255, 0.1) 0%,
                rgba(255, 255, 255, 0) 50%,
                rgba(0, 0, 0, 0.2) 100%
              ) !important;
            }

            /* Flip card container with shadow */
            .tick-flip {
              border-radius: 0.15em !important;
              font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
              font-weight: 600 !important;
              box-shadow: 0 0.2em 0.4em rgba(0, 0, 0, 0.3) !important;
            }

            /* Middle divider line between flip panels for segmented look */
            .tick-flip::after {
              background: #1a1a1a !important;
              height: 0.05em !important;
            }

            /* Text positioning and line height */
            .tick-flip-panel-text-wrapper {
              line-height: 1.5 !important;
            }

            /* Spacing between individual digit cards */
            .tick-flip + .tick-flip {
              margin-left: 0.1em;
            }
            
            /* Navigation Dropdown Styles */
            .nav-menu {
              position: relative;
            }
            
            .nav-item-dropdown {
              position: relative;
            }
            
            .nav-link, .nav-link-dropdown {
              color: var(--color-text, #333);
              font-family: Inter;
              text-decoration: none;
              padding: 0.5rem 0.75rem;
              display: inline-flex;
              align-items: center;
              position: relative;
              border-radius: 4px;
              transition: background-color 0.2s, color 0.2s, border-color 0.2s;
              cursor: pointer;
              font-weight: 500;
            }
            
            /* Navigation underline element for underline style */
            .nav-link .nav-underline, .nav-link-dropdown .nav-underline {
              position: absolute;
              bottom: 0;
              left: 50%;
              transform: translateX(-50%);
              height: 2px;
              width: 0%;
              background-color: var(--color-text, #333);
              transition: width 0.2s ease;
            }
            
            /* Default style hover */
            
            .nav-link:hover, .nav-link-dropdown:hover {
              background-color: rgba(0,0,0,0.05);
              
            }
            
            
            /* Underline style hover */
            
            
            /* Pill style hover */
            
            
            /* Bar style hover */
            
            
            .dropdown-arrow {
              font-size: 0.7em;
              margin-left: 0.3rem;
              transition: transform 0.2s;
            }
            
            .nav-item-dropdown.active .dropdown-arrow {
              transform: rotate(180deg);
            }
            
            .nav-dropdown {
              display: none;
              position: absolute;
              top: 100%;
              left: 0;
              min-width: 200px;
              background: #ffffff;
              border: 1px solid var(--color-border, #e5e7eb);
              border-radius: 4px;
              box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
              padding: 0.5rem 0;
              margin-top: 0.25rem;
              list-style: none;
              z-index: 1000;
            }
            
            /* Dropdown visibility controlled by JavaScript with delay support */
            .nav-item-dropdown.active .nav-dropdown {
              display: block;
            }
            
            .nav-dropdown li {
              margin: 0;
            }
            
            .site-header .nav-dropdown a,
            .site-header .nav-dropdown a:link,
            .site-header .nav-dropdown a:visited,
            .site-header .nav-dropdown a:active {
              color: #333333;
              font-family: Inter;
              text-decoration: none;
              padding: 0.5rem 1rem;
              display: block;
              transition: background-color 0.2s, color 0.2s;
              font-weight: 400;
            }
            
            .site-header .nav-dropdown a:hover {
              background-color: rgba(0,0,0,0.05);
              color: #111111;
            }
            
            /* Nested dropdown (fly-out) styles */
            .nav-item-nested {
              position: relative;
            }
            
            .nav-item-nested .dropdown-arrow {
              transform: rotate(0deg);
            }
            
            /* Nested dropdowns fly out to the right - HIDDEN by default */
            .nav-item-nested > .nav-dropdown {
              display: none !important;
              top: 0;
              left: 100%;
              margin-top: 0;
              margin-left: 0;
            }
            
            /* Show nested dropdown ONLY on direct hover (CSS-based, no JS active class) */
            .nav-item-nested:hover > .nav-dropdown {
              display: block !important;
            }
            
            /* Note: Click mode and hover delays are now fully handled by JavaScript */
            
            /* Mobile Navigation Styles */
            .mobile-menu-toggle {
              display: none;
              background: none;
              border: none;
              cursor: pointer;
              padding: 0.5rem;
              color: var(--color-text, #333);
              font-size: 1.5rem;
              line-height: 1;
            }
            
            .mobile-nav {
              display: none;
            }
            
            @media (max-width: 768px) {
              .mobile-menu-toggle {
                display: block;
                margin-left: auto;
              }
              
              .desktop-nav {
                display: none !important;
              }
              
              .mobile-nav {
                display: none;
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                background: var(--color-surface, #ffffff);
                color: var(--color-text, #333);
                z-index: 9999;
                overflow-y: auto;
              }
              
              .mobile-nav.active {
                display: block;
              }
              
              .mobile-nav-header {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 1rem;
                border-bottom: 1px solid var(--color-border, #ddd);
              }
              
              .mobile-nav-close {
                background: none;
                border: none;
                cursor: pointer;
                padding: 0.5rem;
                color: var(--color-text, #333);
                font-size: 1.5rem;
                line-height: 1;
              }
              
              .mobile-nav ul {
                list-style: none;
                margin: 0;
                padding: 0;
              }
              
              .mobile-nav ul li {
                border-bottom: 1px solid var(--color-border, #ddd);
              }
              
              .mobile-nav ul li a {
                display: block;
                padding: 1rem;
                color: var(--color-text, #333);
                text-decoration: none;
                font-size: 1.1rem;
              }
              
              .mobile-nav ul li a:active {
                background: rgba(0,0,0,0.05);
                
              }
              
              /* Nested sublists — real hierarchy: indented, slightly smaller,
                 with a left guide border so parent/child structure is visible */
              .mobile-nav ul ul.mobile-nav-sub {
                margin: 0 0 0 1rem;
                padding: 0;
                border-left: 2px solid var(--color-border, #ddd);
              }
              
              .mobile-nav ul ul.mobile-nav-sub li {
                border-bottom: none;
              }
              
              .mobile-nav ul ul.mobile-nav-sub li a {
                padding: 0.65rem 1rem;
                font-size: 1rem;
              }
            }
            
            /* ----------------------------------------------
               Custom Quill Blot Styles for Rich Text Content
               ---------------------------------------------- */
            
            /* Floatable Image Styles */
            .ql-floatable-image {
              display: inline-block;
              max-width: 100%;
              margin: 12px 0;
              vertical-align: top;
            }
            
            .ql-floatable-image img {
              display: block;
              max-width: 100%;
              height: auto;
              border-radius: 8px;
            }
            
            .ql-floatable-image.float-left {
              float: left;
              margin: 0 20px 12px 0;
              max-width: 50%;
              clear: none;
            }
            
            .ql-floatable-image.float-right {
              float: right;
              margin: 0 0 12px 20px;
              max-width: 50%;
              clear: none;
            }
            
            .ql-floatable-image.float-none {
              float: none;
              display: block;
              margin: 12px auto;
              max-width: 100%;
            }
            
            .ql-floatable-image.width-small { max-width: 25% !important; }
            .ql-floatable-image.width-medium { max-width: 50% !important; }
            .ql-floatable-image.width-large { max-width: 75% !important; }
            .ql-floatable-image.width-full { max-width: 100% !important; }
            
            /* Video Embed Styles */
            .ql-video-embed {
              display: block;
              margin: 16px 0;
              max-width: 100%;
              clear: both;
            }
            
            .ql-video-embed .video-embed-wrapper {
              position: relative;
              padding-bottom: 56.25%;
              height: 0;
              overflow: hidden;
              border-radius: 8px;
            }
            
            .ql-video-embed .video-embed-wrapper iframe,
            .ql-video-embed .video-embed-wrapper video {
              position: absolute;
              top: 0;
              left: 0;
              width: 100%;
              height: 100%;
            }
            
            .ql-video-embed.float-left {
              float: left;
              margin: 0 20px 12px 0;
              clear: none;
            }
            
            .ql-video-embed.float-right {
              float: right;
              margin: 0 0 12px 20px;
              clear: none;
            }
            
            .ql-video-embed.float-none {
              float: none;
              margin: 16px auto;
            }
            
            .ql-video-embed.width-small { width: 200px !important; min-width: 200px !important; }
            .ql-video-embed.width-medium { width: 320px !important; min-width: 320px !important; }
            .ql-video-embed.width-large { width: 480px !important; min-width: 480px !important; }
            .ql-video-embed.width-full { width: 100% !important; max-width: 100% !important; float: none !important; margin: 16px auto !important; }
            
            /* File Card Styles */
            .ql-file-card {
              display: inline-flex;
              align-items: center;
              gap: 12px;
              padding: 12px 16px;
              background: var(--color-surface, #f8fafc);
              border: 1px solid var(--color-border, #e2e8f0);
              border-radius: 8px;
              text-decoration: none;
              color: var(--color-text, inherit);
              margin: 8px 0;
              max-width: 320px;
              transition: all 0.2s ease;
              box-sizing: border-box;
            }
            
            .ql-file-card:hover {
              background: var(--color-surface, #f1f5f9);
              border-color: var(--color-text, #cbd5e1);
              opacity: 0.9;
            }
            
            .ql-file-card .file-icon {
              width: 40px;
              height: 40px;
              border-radius: 8px;
              display: flex;
              align-items: center;
              justify-content: center;
              font-size: 20px;
              flex-shrink: 0;
            }
            
            .ql-file-card .file-icon.pdf { background: #fef2f2; color: #dc2626; }
            .ql-file-card .file-icon.doc { background: #eff6ff; color: #2563eb; }
            .ql-file-card .file-icon.spreadsheet { background: #f0fdf4; color: #16a34a; }
            .ql-file-card .file-icon.default { background: var(--color-surface, #f8fafc); color: var(--color-textSecondary, #64748b); }
            
            .ql-file-card .file-info {
              flex: 1;
              min-width: 0;
              overflow: hidden;
            }
            
            .ql-file-card .file-name {
              font-weight: 600;
              font-size: 14px;
              color: var(--color-text, #1e293b);
              white-space: nowrap;
              overflow: hidden;
              text-overflow: ellipsis;
            }
            
            .ql-file-card .file-size {
              font-size: 12px;
              color: var(--color-textSecondary, #64748b);
              margin-top: 2px;
            }
            
            .ql-file-card.float-left {
              float: left;
              margin: 8px 16px 8px 0;
            }
            
            .ql-file-card.float-right {
              float: right;
              margin: 8px 0 8px 16px;
            }
            
            /* Mobile Responsive Styles for Quill Blots */
            @media (max-width: 768px) {
              /* File cards on mobile - stacked treatment */
              .ql-file-card {
                display: flex !important;
                flex-direction: column !important;
                align-items: center !important;
                max-width: 120px !important;
                width: auto !important;
                box-sizing: border-box !important;
                padding: 12px !important;
                gap: 6px !important;
                text-align: center !important;
              }
              
              .ql-file-card.float-left,
              .ql-file-card.float-right {
                float: none !important;
                margin: 8px 0 !important;
              }
              
              .ql-file-card .file-icon {
                width: 40px !important;
                height: 40px !important;
                font-size: 18px !important;
                border-radius: 8px !important;
              }
              
              .ql-file-card .file-info {
                min-width: 0 !important;
                width: 100% !important;
                overflow: hidden !important;
                text-align: center !important;
              }
              
              .ql-file-card .file-name {
                max-width: 100% !important;
                font-size: 11px !important;
                overflow: hidden !important;
                text-overflow: ellipsis !important;
                white-space: nowrap !important;
                display: block !important;
              }
              
              .ql-file-card .file-size {
                display: none !important;
              }
              
              /* Floatable images on mobile - remove float and constrain */
              .ql-floatable-image {
                max-width: 100% !important;
                box-sizing: border-box;
              }
              
              .ql-floatable-image.float-left,
              .ql-floatable-image.float-right {
                float: none !important;
                margin: 12px 0 !important;
                max-width: 100% !important;
              }
              
              .ql-floatable-image img {
                max-width: 100% !important;
                height: auto !important;
              }
              
              /* Video embeds on mobile */
              .ql-video-embed.float-left,
              .ql-video-embed.float-right {
                float: none !important;
                margin: 16px 0 !important;
                width: 100% !important;
              }
              
              /* Text content word wrapping */
              .rich-text-content,
              .puck-text {
                max-width: 100% !important;
                overflow-wrap: break-word !important;
                word-wrap: break-word !important;
                word-break: break-word !important;
              }
            }
            
            /* Pull Quote Styles */
            .ql-pull-quote {
              display: block;
              margin: 24px 0;
              padding: 0;
              position: relative;
            }
            
            .ql-pull-quote .pull-quote-wrapper {
              padding: 20px 24px;
              background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
              border-left: 4px solid #3b82f6;
              border-radius: 0 8px 8px 0;
              position: relative;
            }
            
            .ql-pull-quote .pull-quote-mark {
              font-size: 48px;
              line-height: 1;
              color: #3b82f6;
              opacity: 0.3;
              font-family: Georgia, serif;
              position: absolute;
            }
            
            .ql-pull-quote .pull-quote-mark.open {
              top: 8px;
              left: 12px;
            }
            
            .ql-pull-quote .pull-quote-mark.close {
              bottom: 0;
              right: 16px;
            }
            
            .ql-pull-quote .pull-quote-text {
              font-size: 1.25rem;
              font-style: italic;
              font-weight: 500;
              line-height: 1.6;
              color: #334155;
              text-align: center;
              margin: 0;
              padding: 8px 32px;
            }
            
            .ql-pull-quote.float-left {
              float: left;
              margin: 8px 24px 16px 0;
              clear: none;
            }
            
            .ql-pull-quote.float-right {
              float: right;
              margin: 8px 0 16px 24px;
              clear: none;
            }
            
            .ql-pull-quote.float-none {
              float: none;
              margin: 24px auto;
            }
            
            .ql-pull-quote.width-small { width: 200px !important; min-width: 200px !important; }
            .ql-pull-quote.width-medium { width: 280px !important; min-width: 280px !important; }
            .ql-pull-quote.width-large { width: 360px !important; min-width: 360px !important; }
            .ql-pull-quote.width-full { width: 100% !important; max-width: 100% !important; float: none !important; margin: 24px auto !important; }
            
            /* Clear floats after rich text content */
            .text-content::after,
            .rich-text-content::after {
              content: "";
              display: table;
              clear: both;
            }

            /* Render class contract (Task #156): default component structure on
               documented stable classes. Emitted here — after all base styles,
               immediately before the site's custom CSS — so custom CSS overrides
               it at equal specificity. Reproduces the renderer's previous inline
               defaults so sites without custom CSS are unchanged. */
            /* Render class contract v1.9.0 — site chrome structural-only (designer-owned appearance). */
.site-header .header-logo {
  flex-shrink: 0;
}
.site-header .header-logo-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.site-header .header-logo-img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.site-header .header-nav {
  flex: 1;
}
.site-header .nav-menu {
  list-style: none;
  display: flex;
  width: 100%;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.site-header .header-cta {
  flex-shrink: 0;
}
.site-header .header-cta-button {
  display: inline-block;
}
.site-header .header-social {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}
.site-header .header-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
}
.site-header .header-contact {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.site-header .header-grid {
  max-width: var(--header-max-width, var(--content-max-width, 1200px));
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.site-header .header-grid-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 40px;
}
.site-header .header-grid-zone {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.site-header .header-grid-zone--center {
  flex: 1;
}
.site-header .header-flex {
  max-width: var(--header-max-width, var(--content-max-width, 1200px));
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}
.site-footer .site-footer-content {
  max-width: var(--footer-max-width, var(--content-max-width, 1200px));
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;
}
.site-footer .site-footer-logo {
  width: 100%;
  max-width: 150px;
  height: auto;
}
.site-footer .site-footer-links {
  list-style: none;
}
.site-footer .site-footer-social {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.site-footer .site-footer-empty {
  text-align: center;
}
.site-footer .footer-bottom-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.site-footer .footer-bottom-bar-link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
            /* Render class contract v1.9.0 — structural-only (designer-owned appearance). */
.puck-card {
  display: block;
  overflow: hidden;
}
.puck-grid-heading {
  text-align: center;
}
.puck-grid-subheading {
  text-align: center;
}
.puck-columns {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}
.puck-columns-col {
  min-width: 200px;
}
.puck-column {
  min-width: 150px;
  min-height: 100px;
  display: flex;
  flex-direction: column;
}
.puck-button-container {
  display: flex;
  align-self: flex-start;
  width: 100%;
}
.puck-button {
  display: inline-block;
}
.puck-stats-title {
  text-align: center;
}
.puck-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 32px;
}
.puck-stat-card {
  text-align: center;
}
.puck-hero--standard {
  display: flex;
  align-items: center;
  justify-content: center;
}
.puck-hero--carousel {
  position: relative;
  overflow: hidden;
}
.puck-hero--video {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}
.puck-hero--split {
  display: flex;
  flex-wrap: wrap;
}
.puck-hero--minimal {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.puck-hero--offset {
  position: relative;
  display: flex;
}
.puck-hero-content {
  max-width: 800px;
}
.puck-hero--video .puck-hero-content {
  position: relative;
  z-index: 2;
}
.puck-hero--split .puck-hero-content {
  max-width: 500px;
}
.puck-hero--minimal .puck-hero-content {
  max-width: 600px;
}
.puck-hero--offset .puck-hero-content {
  max-width: 500px;
}
.puck-hero-eyebrow {
  display: inline-block;
}
.puck-hero--minimal .puck-hero-subtitle {
  max-width: 500px;
}
.puck-hero-cta-primary {
  display: inline-block;
}
.puck-hero-cta-secondary {
  display: inline-block;
}
.puck-hero--carousel .carousel-slide {
  align-items: center;
  justify-content: center;
}
.puck-hero--carousel .carousel-slides {
  position: relative;
}
.puck-hero--carousel .carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
}
.puck-hero--carousel .carousel-prev {
  left: 1rem;
}
.puck-hero--carousel .carousel-next {
  right: 1rem;
}
.puck-hero--carousel .carousel-dots {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
  z-index: 10;
}
.puck-hero--carousel .carousel-dot {
  width: 12px;
  height: 12px;
}
.puck-hero-video-el {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.puck-hero-video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}
.puck-hero-split-panel {
  flex: 1;
  min-width: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.puck-hero-split-image {
  flex: 1;
  min-width: 300px;
}
.puck-grid-preset {
  display: grid;
}
.puck-flex {
  display: flex;
}
.puck-flex-item {
  flex-shrink: 0;
}
.puck-video {
  display: flex;
}
.puck-video-inner {
  max-width: 100%;
}
.puck-video-media {
  width: 100%;
  display: block;
}
.puck-cta {
  text-align: center;
}
.puck-cta-description {
  max-width: 600px;
  white-space: pre-wrap;
}
.puck-cta-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
.puck-cta-primary {
  display: inline-block;
}
.puck-cta-secondary {
  display: inline-block;
}
.puck-image {
  display: flex;
  max-width: 100%;
}
.puck-image-img {
  display: block;
  max-width: 100%;
}
.puck-image-caption {
  text-align: center;
}
.puck-image-viewer-trigger {
  display: block;
}
.puck-image-viewer-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.puck-image-viewer-img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.puck-image-viewer-close {
  position: absolute;
  top: 16px;
  right: 16px;
}
.puck-image-viewer-previous, .puck-image-viewer-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.puck-image-viewer-previous {
  left: 16px;
}
.puck-image-viewer-next {
  right: 16px;
}
.puck-card-icon-horizontal .puck-card-title {
  text-align: left;
}
.puck-card-description {
  white-space: pre-wrap;
}
.puck-card-featured-overlay {
  position: absolute;
  inset: 0;
}
.puck-card-featured-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}
.puck-card-meta {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: left;
}
.puck-card-meta-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.puck-card-meta-label {
  flex-shrink: 0;
}
.puck-card-avatar {
  width: 120px;
  height: 120px;
  overflow: hidden;
  flex-shrink: 0;
}
.puck-card-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

            /* Member Directory runtime widget appearance. Emitted in FULL for
               all site modes (no structuralOnly variant): the directory is
               built at runtime by an inline script, so on designer-owned
               sites the client inline-style stripper removes its decoration
               and this stylesheet becomes the sole source of its appearance.
               Sits before custom CSS so designer CSS can still override. */
            /* Render class contract v1.9.0 — Member Directory runtime widget (theme-token appearance; overridable by custom CSS below). */
.recur-member-dir-title {
  font-size: 1.875rem;
  font-weight: bold;
  margin: 0 0 16px;
  color: var(--color-text, #333);
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-search {
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid var(--color-border, #e5e5e5);
  background: var(--color-surface, #fff);
  color: var(--color-text, #333);
  font-size: 0.9375rem;
  margin-bottom: 16px;
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-chip {
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid var(--color-border, #e5e5e5);
  background: var(--color-surface, #f5f5f5);
  color: var(--color-text, #333);
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-chip-active {
  background: var(--color-primary, #1976d2);
  color: var(--color-background, #fff);
}
.recur-member-dir-clear {
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  background: transparent;
  color: var(--color-textSecondary, #666);
  border: none;
  cursor: pointer;
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-card {
  background: var(--color-surface, #fff);
  border-radius: 12px;
  border: 1px solid var(--color-border, #e5e5e5);
  padding: 20px;
  cursor: pointer;
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-row {
  background: var(--color-surface, #fff);
  border-radius: 10px;
  border: 1px solid var(--color-border, #e5e5e5);
  padding: 12px 16px;
  cursor: pointer;
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-avatar {
  border-radius: 50%;
  background: var(--color-primary, #1976d2);
  color: var(--color-background, #fff);
  font-weight: 600;
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-name {
  font-weight: 600;
  color: var(--color-text, #333);
  line-height: 1.3;
}
.recur-member-dir-meta {
  font-size: 0.8125rem;
  color: var(--color-textSecondary, #666);
}
.recur-member-dir-tag {
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 500;
  background: var(--color-surface, #f5f5f5);
  color: var(--color-text, #333);
  border: 1px solid var(--color-border, #e5e5e5);
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-empty {
  padding: 40px;
  color: var(--color-textSecondary, #666);
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-page-btn {
  padding: 8px 14px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  background: var(--color-text, #333);
  color: var(--color-surface, #fff);
  font-size: 0.875rem;
  font-weight: 500;
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-page-btn[disabled] {
  cursor: not-allowed;
  background: var(--color-border, #e5e5e5);
  color: var(--color-textSecondary, #999);
}
.recur-member-dir-page-label {
  font-size: 0.875rem;
  color: var(--color-text, #333);
}
.recur-member-dir-modal-backdrop {
  background: rgba(0, 0, 0, 0.55);
  padding: 20px;
  font-family: var(--font-primary, inherit);
}
.recur-member-dir-modal {
  background: var(--color-surface, #fff);
  color: var(--color-text, #333);
  border-radius: 12px;
  border: 1px solid var(--color-border, #e5e5e5);
}
.recur-member-dir-modal-close {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--color-textSecondary, #666);
  border-radius: 6px;
}
.recur-member-dir-modal-title {
  font-size: 1.375rem;
  font-weight: 700;
  margin: 0;
}
.recur-member-dir-link {
  color: var(--color-primary, #1976d2);
}
.recur-member-dir-meta-sm {
  font-size: 0.75rem;
}
.recur-member-dir-card .recur-member-dir-name {
  font-size: 1rem;
}
.recur-member-dir-row .recur-member-dir-name {
  font-size: 0.9375rem;
}
.recur-member-dir-card .recur-member-dir-avatar {
  font-size: 27px;
}
.recur-member-dir-row .recur-member-dir-avatar {
  font-size: 17px;
}
.recur-member-dir-modal .recur-member-dir-avatar {
  font-size: 24px;
}
.recur-member-dir-chip[data-md-view] {
  border-radius: 6px;
}
.recur-member-dir-modal-body {
  padding: 28px 32px;
}
.recur-member-dir-modal-header {
  margin-bottom: 16px;
}
.recur-member-dir-modal-meta {
  font-size: 0.875rem;
  color: var(--color-textSecondary, #666);
}
.recur-member-dir-modal-location {
  font-size: 0.875rem;
  color: var(--color-textSecondary, #666);
  margin-bottom: 10px;
}
.recur-member-dir-modal-tags {
  margin-bottom: 14px;
}
.recur-member-dir-modal-bio {
  font-size: 0.9375rem;
  line-height: 1.6;
  margin: 0 0 16px;
}
.recur-member-dir-modal-contact {
  font-size: 0.875rem;
}
.recur-member-dir-modal-phone {
  color: var(--color-textSecondary, #666);
}

            /* Newsletter signup runtime widget (footer section + modal).
               Same always-emitted-in-full rule as the member directory: the
               modal is built at runtime by an inline script, so this
               stylesheet is the sole source of its appearance on
               designer-owned sites. Sits before custom CSS so designer CSS
               can still override. */
            /* Render class contract v1.9.0 — Newsletter signup runtime widget (theme-token appearance; overridable by custom CSS below). */
.recur-nl-description {
  margin: 0 0 12px 0;
  font-size: 0.9rem;
  line-height: 1.5;
  opacity: 0.9;
}
.recur-nl-form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  max-width: 320px;
}
.recur-nl-input {
  flex: 1 1 160px;
  min-width: 0;
  padding: 10px 16px;
  border: 1px solid var(--color-border, #d1d5db);
  border-radius: 9999px;
  font-size: 0.9rem;
  background: #ffffff;
  color: #111827;
}
.recur-nl-button {
  padding: 10px 22px;
  border: none;
  border-radius: 9999px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  background: var(--color-primary, #2563eb);
  color: var(--color-buttonText, #ffffff);
}
.recur-nl-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}
.recur-nl-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10050;
  padding: 16px;
}
.recur-nl-modal {
  background: #ffffff;
  color: #111827;
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
  width: 100%;
  max-width: 420px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 24px;
  position: relative;
  text-align: left;
}
.recur-nl-modal-title {
  margin: 0 0 4px 0;
  font-size: 1.25rem;
  font-weight: 700;
  padding-right: 32px;
}
.recur-nl-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  background: none;
  border: none;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: #6b7280;
  padding: 4px;
}
.recur-nl-field {
  margin: 12px 0;
}
.recur-nl-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 4px;
}
.recur-nl-field input[type="text"], .recur-nl-field input[type="email"] {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 12px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 0.9rem;
  background: #ffffff;
  color: #111827;
}
.recur-nl-checkbox-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 12px 0;
  font-size: 0.85rem;
  line-height: 1.4;
}
.recur-nl-error {
  color: #b91c1c;
  font-size: 0.85rem;
  margin: 8px 0;
}
.recur-nl-success {
  color: #15803d;
  font-size: 0.95rem;
  margin: 8px 0;
  line-height: 1.5;
}
.recur-nl-submit {
  width: 100%;
  padding: 10px 16px;
  border: none;
  border-radius: 9999px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  background: var(--color-primary, #2563eb);
  color: var(--color-buttonText, #ffffff);
  margin-top: 8px;
}
.recur-nl-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

            /* Tenant-provided custom CSS (advanced styling mode only). Sanitized
               to neutralize style-tag escape attempts. In native mode the value
               is stored but intentionally not applied.
               NOTE: do not write the literal closing-style token in this comment
               — the HTML parser will close the surrounding <style> block early
               and dump the rest of the comment into the page. */
            /* -------- NITOP — "Gulf Coast Seminar" design system --------
   Concept: a warm, editorial conference identity drawn from the
   NITOP logo (terracotta #C1502E, amber #E29F4C, teal #5D8897) — cream paper
   backgrounds, deep ink type, serif display headings, and
   sunlit coastal imagery. Professional and modern.
   ------------------------------------------------------------ */

:root {
  --nitop-terracotta: #c1502e;
  --nitop-terracotta-dark: #9e3f22;
  --nitop-amber: #e29f4c;
  --nitop-teal: #5d8897;
  --nitop-teal-dark: #3f6875;
  --nitop-teal-pale: #e8f0f1;
  --nitop-ink: #26221e;
  --nitop-ink-soft: #5f564e;
  --nitop-cream: #faf6f1;
  --nitop-paper: #ffffff;
  --nitop-sand: #f1e8dc;
  --nitop-line: #e6dccf;
  --nitop-max: 1160px;
  --nitop-radius: 14px;
  --nitop-shadow: 0 10px 30px -12px rgba(38, 34, 30, 0.18);
  --nitop-serif: "Playfair Display", Georgia, serif;
  --nitop-sans: "Inter", system-ui, -apple-system, sans-serif;

  /* Recur widget theme tokens — inline styles in widgets fall back to these */
  --color-primary: #c1502e;
  --color-background: #faf6f1;
  --color-accent: #e29f4c;
  --color-secondaryAccent: #5d8897;
  --color-border: #e6dccf;
  --color-surface: #f1e8dc;
  --color-text: #26221e;
  --color-textSecondary: #5f564e;
}

/* ---------- base ---------- */
body {
  background: var(--nitop-cream);
  color: var(--nitop-ink);
  font-family: var(--nitop-sans);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--nitop-serif);
  color: var(--nitop-ink);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

/* cap regular section content (theme contentWidth is "full") */
.puck-heading, .puck-text, .puck-grid, .puck-columns, .puck-flex,
.puck-stats, .puck-cta, .puck-image, .puck-button-container,
.puck-video, .recur-event-list, .recur-product-list {
  max-width: var(--nitop-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

.puck-heading h1 {
  font-size: clamp(2.2rem, 4.5vw, 3.25rem);
  margin: 2.5rem auto 0.75rem;
  text-wrap: balance;
}
.puck-heading h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  margin: 2.2rem auto 0.65rem;
  text-wrap: balance;
}
/* terracotta accent rule under every standalone h2 */
.puck-heading h2::after {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  background: var(--nitop-terracotta);
  border-radius: 999px;
  margin: 14px auto 0;
}
.puck-heading h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  margin: 2rem auto 0.4rem;
  color: var(--nitop-terracotta-dark);
  text-wrap: balance;
}

/* Native Recur headings render as direct children of #puck-content rather
   than inside a .puck-heading wrapper. Keep the same editorial scale on
   those section titles so typography is consistent across every page. */
#puck-content > h1 {
  font-size: clamp(2.2rem, 4.5vw, 3.25rem);
  margin: 2.5rem auto 0.75rem;
  text-wrap: balance;
}
#puck-content > h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  margin: 2.2rem auto 0.65rem;
  text-wrap: balance;
}
#puck-content > h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  margin: 2rem auto 0.4rem;
  color: var(--nitop-terracotta-dark);
  text-wrap: balance;
}

/* ---------- Sponsors & Partners opening statement ---------- */
/*
   The partnership case is the page's most important first impression after
   the hero. Treat the heading and its supporting paragraph as one editorial
   spotlight rather than two disconnected default blocks.
*/
#puck-content > h2:has(+ .puck-text + .puck-stats) {
  max-width: var(--nitop-max);
  margin: 3.2rem auto 0;
  padding: 48px 64px 0;
  box-sizing: border-box;
  border: 1px solid var(--nitop-teal-dark);
  border-bottom: 0;
  border-radius: 24px 24px 0 0;
  background: linear-gradient(120deg, var(--nitop-teal-dark) 0%, #31515c 100%);
  color: #ffffff;
  font-size: clamp(1.85rem, 3.2vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: -0.015em;
  text-align: left !important;
}
#puck-content > h2:has(+ .puck-text + .puck-stats)::before {
  content: "PARTNERSHIP IN FOCUS";
  display: block;
  margin-bottom: 14px;
  color: #b8d4d9;
  font-family: var(--nitop-sans);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  line-height: 1.3;
}
#puck-content > h2:has(+ .puck-text + .puck-stats)::after {
  width: 68px;
  height: 4px;
  margin: 18px 0 0;
  background: var(--nitop-amber);
}
#puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 16px 64px 50px;
  box-sizing: border-box;
  border: 1px solid var(--nitop-teal-dark);
  border-top: 0;
  border-radius: 0 0 24px 24px;
  background: linear-gradient(120deg, var(--nitop-teal-dark) 0%, #31515c 100%);
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1.06rem, 1.7vw, 1.2rem);
  line-height: 1.8;
}
#puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text + .puck-stats {
  margin-top: 34px;
}
#puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text + .puck-stats .puck-stats-title {
  color: var(--nitop-ink);
}

/* ---------- Sponsors & Partners opportunity panel ---------- */
/*
   Keep the live ProductList in place for future packages, but make its
   interim empty state feel intentional. The heading, explanation, status,
   and contact action now read as one decision-ready section.
*/
#puck-content > h2:has(+ .puck-text + .recur-product-list) {
  max-width: var(--nitop-max);
  margin: 3.2rem auto 0;
  padding: 42px 64px 0;
  box-sizing: border-box;
  border: 1px solid var(--nitop-line);
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  background: linear-gradient(120deg, #fffaf4 0%, #f3e9dd 100%);
  text-align: left !important;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list)::before {
  content: "NEXT STEP";
  display: block;
  margin-bottom: 12px;
  color: var(--nitop-terracotta);
  font-family: var(--nitop-sans);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  line-height: 1.3;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list)::after {
  margin: 16px 0 0;
  background: var(--nitop-teal);
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 12px 64px 24px;
  box-sizing: border-box;
  border-right: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  background: linear-gradient(120deg, #fffaf4 0%, #f3e9dd 100%);
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.75;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 0 64px 16px;
  box-sizing: border-box;
  border-right: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  background: linear-gradient(120deg, #fffaf4 0%, #f3e9dd 100%);
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-title {
  margin: 0 0 18px;
  text-align: left;
  font-size: 1.45rem;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-empty {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 24px;
  border: 1px solid rgba(93, 136, 151, 0.25);
  border-left: 4px solid var(--nitop-teal);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--nitop-ink-soft);
  font-size: 0.98rem;
  line-height: 1.65;
  text-align: left;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-empty::before {
  content: "COMING SOON";
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  padding: 6px 9px;
  border: 1px solid rgba(93, 136, 151, 0.24);
  border-radius: 999px;
  background: var(--nitop-teal-pale);
  color: var(--nitop-teal-dark);
  font-family: var(--nitop-sans);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  line-height: 1;
  white-space: nowrap;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list + .puck-button-container {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 0 64px 38px;
  box-sizing: border-box;
  border-right: 1px solid var(--nitop-line);
  border-bottom: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  border-radius: 0 0 22px 22px;
  background: linear-gradient(120deg, #fffaf4 0%, #f3e9dd 100%);
  justify-content: flex-start !important;
}
#puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list + .puck-button-container .puck-button {
  margin-top: 0;
  box-shadow: 0 8px 18px -12px rgba(158, 63, 34, 0.75);
}

@media (max-width: 720px) {
  #puck-content > h2:has(+ .puck-text + .puck-stats) {
    margin-top: 2.4rem;
    padding: 34px 24px 0;
    border-radius: 18px 18px 0 0;
    font-size: clamp(1.7rem, 8vw, 2rem);
  }
  #puck-content > h2:has(+ .puck-text + .puck-stats)::before {
    margin-bottom: 12px;
    font-size: 0.64rem;
    letter-spacing: 0.14em;
  }
  #puck-content > h2:has(+ .puck-text + .puck-stats)::after {
    margin-top: 14px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text {
    padding: 14px 24px 32px;
    border-radius: 0 0 18px 18px;
    font-size: 1rem;
    line-height: 1.7;
  }
  #puck-content > h2:has(+ .puck-text + .puck-stats) + .puck-text + .puck-stats {
    margin-top: 24px;
  }

  #puck-content > h2:has(+ .puck-text + .recur-product-list) {
    margin-top: 2.4rem;
    padding: 32px 24px 0;
    border-radius: 18px 18px 0 0;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list)::before {
    font-size: 0.64rem;
    letter-spacing: 0.14em;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text {
    padding: 10px 24px 20px;
    font-size: 0.98rem;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list {
    padding: 0 24px 14px;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-empty {
    gap: 10px;
    padding: 18px 16px;
    font-size: 0.94rem;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list .recur-product-list-empty::before {
    padding: 5px 7px;
    font-size: 0.54rem;
  }
  #puck-content > h2:has(+ .puck-text + .recur-product-list) + .puck-text + .recur-product-list + .puck-button-container {
    padding: 0 24px 28px;
    border-radius: 0 0 18px 18px;
  }
}

.puck-text { color: var(--nitop-ink-soft); font-size: 1.06rem; max-width: 760px; line-height: 1.8; padding-top: 0.75rem; padding-bottom: 8px; white-space: pre-line; }
.puck-text strong { color: var(--nitop-ink); }

/* Section introductions read as editorial subtitles beneath their headings.
   Keep card, table, and archive body copy unaffected by limiting this to
   direct heading/text pairs in the page content. */
#puck-content > h1 + .puck-text,
#puck-content > h2 + .puck-text,
#puck-content > h3 + .puck-text {
  text-align: center !important;
}

/* Give the donation explanation cards a deliberate pause after their
   centered introduction, matching the editorial rhythm of the section. */
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--feature) + .puck-text + .puck-grid {
  margin-top: 12px;
}

/* Home testimonial: keep the quote, attribution, and survey result together
   as one compact editorial block instead of two oversized text areas. */
#puck-content > h2:has(+ .puck-text + .puck-text + .puck-grid) {
  margin-bottom: 0.2rem;
}
#puck-content > h2:has(+ .puck-text + .puck-text + .puck-grid) + .puck-text {
  max-width: 620px;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  color: var(--nitop-terracotta-dark);
  font-family: var(--nitop-serif);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  line-height: 1.55;
}
#puck-content > h2:has(+ .puck-text + .puck-text + .puck-grid) + .puck-text + .puck-text {
  max-width: 680px;
  padding-top: 0.35rem;
  padding-bottom: 1.1rem;
  font-size: 1rem;
  line-height: 1.55;
  text-align: center !important;
}

/* Program & Schedule date headings */
.nitop-schedule-date {
  max-width: var(--nitop-max);
  margin: 2.4rem auto 1.45rem;
  padding: 0 24px;
  box-sizing: border-box;
  text-align: center;
}
.nitop-schedule-date h2 {
  display: inline-block;
  margin: 0;
  color: var(--nitop-ink);
  font-family: var(--nitop-serif);
  font-size: clamp(1.7rem, 3vw, 2.25rem);
  line-height: 1.18;
  letter-spacing: -0.015em;
}
.nitop-schedule-date h2::after {
  content: '';
  display: block;
  width: 52px;
  height: 3px;
  margin: 13px auto 0;
  background: var(--nitop-terracotta);
  border-radius: 999px;
}

/* ---------- native Program & Schedule tables ---------- */
/*
   The schedule uses native Recur Heading + Table components. The adjacent
   heading/table relationship scopes this agenda treatment to the four
   schedule days without changing the registration or other site tables.
*/
#puck-content > h2:has(+ .puck-table-wrapper) {
  max-width: var(--nitop-max);
  margin: 3rem auto 0;
  padding: 24px 30px 18px;
  box-sizing: border-box;
  border-left: 8px solid var(--nitop-terracotta);
  border-top: 1px solid var(--nitop-line);
  border-right: 1px solid var(--nitop-line);
  border-radius: 18px 18px 0 0;
  background: linear-gradient(105deg, var(--nitop-sand) 0%, #fffdfb 100%);
  color: var(--nitop-ink);
  font-family: var(--nitop-serif);
  font-size: clamp(1.65rem, 2.9vw, 2.1rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
  text-align: left !important;
  scroll-margin-top: 24px;
}
#puck-content > h2:has(+ .puck-table-wrapper)::after {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  margin-top: 12px;
  background: var(--nitop-amber);
  border-radius: 999px;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper {
  max-width: var(--nitop-max);
  margin: 0 auto 3.4rem;
  padding: 0 30px 6px;
  box-sizing: border-box;
  overflow-x: auto;
  border-right: 1px solid var(--nitop-line);
  border-bottom: 1px solid var(--nitop-line);
  border-left: 8px solid var(--nitop-terracotta);
  border-radius: 0 0 18px 18px;
  background: var(--nitop-paper);
  box-shadow: var(--nitop-shadow);
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper table {
  width: 100% !important;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--nitop-ink-soft);
  font-size: 0.98rem;
  line-height: 1.5;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th,
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td {
  padding: 17px 16px !important;
  border: 0;
  border-bottom: 1px solid var(--nitop-line);
  vertical-align: top;
  text-align: left !important;
  overflow-wrap: anywhere;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th {
  background: var(--nitop-teal-dark) !important;
  color: #ffffff !important;
  font-family: var(--nitop-sans);
  font-size: 0.74rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th:first-child,
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:first-child {
  width: 19%;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th:nth-child(2),
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:nth-child(2) {
  width: 42%;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th:last-child,
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:last-child {
  width: 39%;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody tr:nth-child(even) td {
  background: #fffaf5;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody tr:hover td {
  background: var(--nitop-teal-pale);
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody tr:last-child td {
  border-bottom: 0;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:first-child {
  color: var(--nitop-terracotta-dark);
  font-variant-numeric: tabular-nums;
  font-weight: 750;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:nth-child(2) {
  color: var(--nitop-ink);
  font-weight: 700;
}
#puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:last-child {
  color: var(--nitop-teal-dark);
  font-size: 0.92rem;
}

/* ---------- Registration rate panel ---------- */
/* Scoped to the four-column pricing table so other native tables are untouched. */
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) {
  max-width: var(--nitop-max);
  margin: 3rem auto 0;
  padding: 32px 30px 8px;
  box-sizing: border-box;
  border-top: 1px solid var(--nitop-line);
  border-right: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  border-radius: 18px 18px 0 0;
  background: linear-gradient(105deg, var(--nitop-sand) 0%, #fffdfb 100%);
  color: var(--nitop-ink);
  text-align: center !important;
  scroll-margin-top: 24px;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper)::after {
  content: '';
  display: block;
  width: 48px;
  height: 3px;
  margin: 13px auto 0;
  background: var(--nitop-terracotta);
  border-radius: 999px;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 2px 30px 26px;
  box-sizing: border-box;
  border-right: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  background: linear-gradient(105deg, var(--nitop-sand) 0%, #fffdfb 100%);
  font-size: 1rem;
  line-height: 1.75;
  text-align: center !important;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 0 30px 8px;
  box-sizing: border-box;
  overflow-x: auto;
  border-right: 1px solid var(--nitop-line);
  border-bottom: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  border-radius: 0 0 18px 18px;
  background: var(--nitop-paper);
  box-shadow: 0 16px 38px -18px rgba(38, 34, 30, 0.24);
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper table {
  width: 100% !important;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--nitop-ink-soft);
  font-size: 0.96rem;
  line-height: 1.45;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper th,
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td {
  padding: 16px 15px !important;
  border: 0;
  border-bottom: 1px solid var(--nitop-line);
  vertical-align: middle;
  text-align: left !important;
  overflow-wrap: anywhere;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper th {
  background: var(--nitop-teal-dark) !important;
  color: #ffffff !important;
  font-family: var(--nitop-sans);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper th:first-child,
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:first-child {
  width: 37%;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper th:nth-child(n+2),
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(n+2) {
  width: 21%;
  text-align: center !important;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody tr:nth-child(even) td {
  background: #fffaf5;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody tr:hover td {
  background: var(--nitop-teal-pale);
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody tr:last-child td {
  border-bottom: 0;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:first-child {
  color: var(--nitop-ink);
  font-weight: 700;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(n+2) {
  color: var(--nitop-terracotta-dark);
  font-size: 1.04rem;
  font-variant-numeric: tabular-nums;
  font-weight: 750;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper + .puck-button-container {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 22px 30px 2px;
  box-sizing: border-box;
  background: var(--nitop-paper);
  border-right: 1px solid var(--nitop-line);
  border-bottom: 1px solid var(--nitop-line);
  border-left: 1px solid var(--nitop-line);
  border-radius: 0 0 18px 18px;
}
#puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper + .puck-button-container .puck-button {
  box-shadow: 0 8px 20px -8px rgba(193, 80, 46, 0.7);
}

/* ---------- hero ---------- */
/* full-bleed: escape the 32px padding that \003c main> applies on all sides */
.puck-hero {
  position: relative;
  overflow: hidden;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-top: -32px;
}
.puck-hero-content { max-width: 880px; padding: 0 24px; }
.puck-hero-eyebrow {
  display: inline-block;
  font-family: var(--nitop-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #ffe9d2;
  background: rgba(193, 80, 46, 0.85);
  padding: 8px 18px;
  border-radius: 999px;
  margin-bottom: 22px;
}
.puck-hero-title {
  font-family: var(--nitop-serif);
  font-size: clamp(2.5rem, 6vw, 4.4rem);
  font-weight: 700;
  color: #ffffff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
  line-height: 1.08;
  margin: 0 0 18px;
}
.puck-hero-subtitle {
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  color: rgba(255, 255, 255, 0.94);
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 720px;
  margin: 0 auto 30px;
}
.puck-hero-cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.puck-hero-cta-primary, .puck-hero-cta-secondary {
  display: inline-block;
  padding: 15px 34px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.puck-hero-cta-primary {
  background: var(--nitop-terracotta);
  color: #ffffff;
  box-shadow: 0 8px 24px -8px rgba(193, 80, 46, 0.7);
}
.puck-hero-cta-primary:hover { background: var(--nitop-terracotta-dark); transform: translateY(-2px); }
.puck-hero-cta-secondary {
  background: rgba(255, 255, 255, 0.14);
  color: #ffffff;
  border: 1.5px solid rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(6px);
}
.puck-hero-cta-secondary:hover { background: rgba(255, 255, 255, 0.28); transform: translateY(-2px); }

/* soft bottom fade — dissolves the hero photo into the page background */
.puck-hero::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100px;
  background: linear-gradient(to bottom, transparent 0%, #faf6f1 100%);
  pointer-events: none;
  z-index: 2;
}
/* interior hero uses a dark gradient — no cream fade needed there */
.puck-hero--minimal::after { display: none; }

/* interior page heroes (minimal style) */
.puck-hero--minimal { background: linear-gradient(150deg, #2c241e 0%, #513425 55%, var(--nitop-terracotta-dark) 100%); padding: 90px 24px; }
.puck-hero--minimal .puck-hero-title { color: #fff; }
.puck-hero--minimal .puck-hero-subtitle { color: rgba(255, 244, 232, 0.9); }

/* ---------- buttons ---------- */
.puck-button {
  display: inline-block;
  padding: 13px 30px;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  background: var(--nitop-terracotta);
  color: #fff;
  transition: background 0.15s ease, transform 0.15s ease;
}
.puck-button:hover { background: var(--nitop-terracotta-dark); transform: translateY(-1px); }
.puck-button-container { padding-top: 8px; padding-bottom: 24px; }

/* ---------- cards ---------- */
.puck-card {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-radius: var(--nitop-radius);
  box-shadow: var(--nitop-shadow);
  padding: 30px 28px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  height: 100%;
  box-sizing: border-box;
}
.puck-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -14px rgba(38, 34, 30, 0.25); }
.puck-card-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--nitop-terracotta);
  margin-bottom: 10px;
}
.puck-card-title {
  font-family: var(--nitop-serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--nitop-ink);
  margin: 0 0 10px;
}
.puck-card-description { color: var(--nitop-ink-soft); font-size: 0.98rem; }
.puck-card-meta { margin-top: 14px; border-top: 1px dashed var(--nitop-line); padding-top: 12px; }
.puck-card-meta-row { display: flex; gap: 10px; font-size: 0.92rem; padding: 3px 0; }
.puck-card-meta-label { font-weight: 600; color: var(--nitop-ink); min-width: 130px; }
.puck-card-meta-value, .puck-card-meta-link { color: var(--nitop-ink-soft); }
.puck-card-meta-link { color: var(--nitop-terracotta); text-decoration: none; }
.puck-card-button {
  display: inline-block;
  margin-top: 16px;
  padding: 10px 22px;
  border-radius: 999px;
  background: var(--nitop-sand);
  color: var(--nitop-terracotta-dark);
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
}
.puck-card-button:hover { background: var(--nitop-amber); color: #fff; }

/* variant: session cards — a restrained teal note from the NITOP logo */
.puck-card--session { border-top: 3px solid var(--nitop-teal); }
.puck-card--session .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--session .puck-card-button {
  background: var(--nitop-teal-pale);
  color: var(--nitop-teal-dark);
}
.puck-card--session .puck-card-button:hover {
  background: var(--nitop-teal);
  color: #fff;
}

/* variant: fee cards */
.puck-card--fee { background: var(--nitop-paper); border-top: 4px solid var(--nitop-amber); }
.puck-card--fee .puck-card-title { color: var(--nitop-terracotta-dark); }

/* variant: feature (what registration includes) */
.puck-card--feature {
  background: var(--nitop-sand);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-terracotta);
}
.puck-card--feature .puck-card-title::before {
  content: "✓";
  display: inline-block;
  color: var(--nitop-terracotta);
  font-weight: 700;
  margin-right: 8px;
}

/* Award winners are the heart of the Awards page: give each entry a clear
   recognition band without repeating a separate definition-card section. */
.puck-card--award-winner {
  background: linear-gradient(145deg, #ffffff 0%, #fff8ed 100%);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-terracotta);
  padding: 32px 28px 30px;
}
.puck-card--award-winner:hover {
  border-top-color: var(--nitop-amber);
}
.puck-card--award-winner .puck-card-eyebrow {
  color: var(--nitop-terracotta-dark);
  line-height: 1.45;
}
.puck-card--award-winner .puck-card-title {
  font-size: 1.5rem;
  margin-bottom: 16px;
}
.puck-card--award-winner .puck-card-description {
  line-height: 1.72;
  white-space: pre-line;
}

/* variant: step (how to register) */
.puck-card--step {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-teal);
}
.puck-card--step .puck-card-eyebrow {
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--nitop-teal-dark);
}

/* variant: promo (plus one callout) */
.puck-card--promo {
  background: linear-gradient(135deg, #fef6e7 0%, var(--nitop-sand) 100%);
  border: 1.5px solid var(--nitop-amber);
  text-align: center;
  padding: 40px 56px;
  box-shadow: 0 4px 20px -8px rgba(226, 159, 76, 0.35);
}
.puck-card--promo .puck-card-title {
  font-family: var(--nitop-serif);
  font-size: 1.55rem;
  color: var(--nitop-terracotta-dark);
  margin-bottom: 12px;
}
.puck-card--promo .puck-card-description { font-size: 1rem; max-width: 640px; margin: 0 auto; }

/* variant: notice (cancellation policy) */
.puck-card--notice {
  background: var(--nitop-sand);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-ink-soft);
  padding: 28px 36px;
}
.puck-card--notice .puck-card-title { font-size: 1.05rem; color: var(--nitop-ink); margin-bottom: 8px; }
.puck-card--notice .puck-card-description { font-size: 0.94rem; color: var(--nitop-ink-soft); }

/* ===== Historical archive sections ===== */
.puck-card--archive-resource {
  background: linear-gradient(145deg, #fff 0%, #fcf7f0 100%);
  border-top: 3px solid var(--nitop-amber);
  padding: 24px 22px;
  height: auto !important;
  min-height: 0 !important;
}
.puck-card--archive-resource .puck-card-title {
  font-size: 1.12rem;
  line-height: 1.25;
}
.puck-card--archive-resource .puck-card-description {
  font-size: 0.9rem;
  line-height: 1.55;
}
.puck-card--archive-resource .puck-card-button {
  background: var(--nitop-terracotta);
  color: #fff;
  padding: 9px 18px;
}
.puck-card--archive-resource .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
  color: #fff;
}
.puck-card--archive-resource:hover {
  border-color: var(--nitop-amber);
}

/* Structured replacements for long imported source-text dumps */
.puck-card--source-section {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-terracotta);
  padding: 28px 30px;
  height: auto !important;
  min-height: 0 !important;
}
.puck-card--source-section:hover {
  transform: none;
  box-shadow: 0 12px 30px -18px rgba(38, 34, 30, 0.25);
}
.puck-card--source-section .puck-card-title {
  color: var(--nitop-ink);
  font-size: 1.2rem;
  margin-bottom: 12px;
}
.puck-card--source-section .puck-card-description {
  color: var(--nitop-ink-soft);
  font-size: 0.97rem;
  line-height: 1.72;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

/* Long-form source material should read like a document, not a wall of tiles */
.puck-card--document-section,
.puck-card--archive-document {
  position: relative;
  height: auto !important;
  min-height: 0 !important;
  padding: 34px 42px 38px;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--nitop-line);
  border-radius: 0;
  box-shadow: none;
}
.puck-card--document-section::before,
.puck-card--archive-document::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 72px;
  height: 3px;
  background: var(--nitop-teal);
}
.puck-card--archive-document::before { background: var(--nitop-amber); }
.puck-card--document-section:hover,
.puck-card--archive-document:hover {
  transform: none;
  box-shadow: none;
}
.puck-card--document-section .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--archive-document .puck-card-eyebrow {
  color: var(--nitop-terracotta);
}
.puck-card--document-section .puck-card-title,
.puck-card--archive-document .puck-card-title {
  max-width: 780px;
  margin-bottom: 16px;
  font-size: clamp(1.3rem, 2.2vw, 1.72rem);
}
.puck-card--document-section .puck-card-description,
.puck-card--archive-document .puck-card-description {
  max-width: 920px;
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.82;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.puck-card--archive-link-row {
  height: auto !important;
  min-height: 0 !important;
  padding: 24px 28px;
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-teal);
  box-shadow: none;
}
.puck-card--archive-link-row > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 28px;
}
.puck-card--archive-link-row .puck-card-eyebrow,
.puck-card--archive-link-row .puck-card-title,
.puck-card--archive-link-row .puck-card-description {
  grid-column: 1;
}
.puck-card--archive-link-row > div > div {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: center;
}
.puck-card--archive-link-row:hover {
  transform: translateX(3px);
  border-color: var(--nitop-teal);
  box-shadow: none;
}
.puck-card--archive-link-row .puck-card-content { min-width: 0; }
.puck-card--archive-link-row .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--archive-link-row .puck-card-title {
  margin-bottom: 8px;
  font-size: 1.16rem;
}
.puck-card--archive-link-row .puck-card-description {
  color: var(--nitop-ink-soft);
  line-height: 1.58;
  white-space: pre-line;
}
.puck-card--archive-link-row .puck-card-button {
  margin: 0;
  white-space: nowrap;
  background: var(--nitop-teal-dark);
  color: #fff;
}
.puck-card--archive-link-row .puck-card-button:hover {
  background: var(--nitop-terracotta);
  color: #fff;
}

.puck-card--archive-unavailable-row {
  height: auto !important;
  min-height: 0 !important;
  padding: 22px 28px;
  background: rgba(241, 232, 220, 0.55);
  border: 1px dashed #cfbeaa;
  border-left: 4px solid #b79c7d;
  box-shadow: none;
}
.puck-card--archive-unavailable-row:hover {
  transform: none;
  border-color: #cfbeaa;
  border-left-color: #b79c7d;
  box-shadow: none;
}
.puck-card--archive-unavailable-row .puck-card-eyebrow {
  color: #856b50;
}
.puck-card--archive-unavailable-row .puck-card-title {
  margin-bottom: 7px;
  font-size: 1.12rem;
}
.puck-card--archive-unavailable-row .puck-card-description {
  color: var(--nitop-ink-soft);
  font-size: 0.92rem;
}

/* Year archive information should read as a contained record, not an
   unfinished text fragment between headings. */
.puck-grid:has(.puck-card--archive-document) .puck-card--archive-document {
  padding: 28px 32px 30px;
  background: linear-gradient(145deg, #fff 0%, #fcf7f0 100%);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-amber);
  border-radius: 14px;
  box-shadow: 0 12px 26px -20px rgba(38, 34, 30, 0.32);
}
.puck-grid:has(.puck-card--archive-document) .puck-card--archive-document::before {
  display: none;
}
.puck-grid:has(.puck-card--archive-document) .puck-card--archive-document:hover {
  background: linear-gradient(145deg, #fff 0%, #fcf7f0 100%);
  box-shadow: 0 12px 26px -20px rgba(38, 34, 30, 0.32);
}
.puck-grid:has(.puck-card--archive-document),
.puck-grid:has(.puck-card--archive-link-row),
.puck-grid:has(.puck-card--archive-unavailable-row) {
  padding-bottom: 16px;
}

@media (min-width: 721px) {
  .puck-grid:has(.puck-card--archive-resource) > .puck-grid-column > .puck-card--archive-resource {
    flex: 1 1 auto !important;
    height: 100% !important;
  }
}

.puck-grid:has(.puck-card--archive-resource) > .puck-grid-column > .puck-card--archive-resource {
  display: flex;
  box-sizing: border-box;
  overflow: hidden !important;
}
.puck-grid:has(.puck-card--archive-resource) > .puck-grid-column > .puck-card--archive-resource > div {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}
.puck-grid:has(.puck-card--archive-resource) > .puck-grid-column > .puck-card--archive-resource > div > div:last-child {
  margin-top: auto;
}

.puck-card--archive-year {
  position: relative;
  height: auto !important;
  min-height: 0 !important;
  padding: 24px 30px 24px 40px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--nitop-line);
  border-radius: 0;
  box-shadow: none;
}
.puck-card--archive-year > div {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) auto;
  grid-template-areas:
    "eyebrow title button"
    "eyebrow description button";
  align-items: center;
  gap: 6px 30px;
}
.puck-card--archive-year::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--nitop-line);
}
.puck-card--archive-year::after {
  content: "";
  position: absolute;
  left: 2px;
  top: 50%;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border-radius: 50%;
  background: var(--nitop-teal);
  border: 3px solid var(--nitop-paper);
  box-shadow: 0 0 0 1px var(--nitop-teal);
}
.puck-card--archive-year:hover {
  transform: none;
  background: var(--nitop-teal-pale);
  box-shadow: none;
}
.puck-card--archive-year .puck-card-eyebrow {
  grid-area: eyebrow;
  margin: 0;
  color: var(--nitop-terracotta);
}
.puck-card--archive-year .puck-card-title {
  grid-area: title;
  margin: 0;
  font-size: 1.45rem;
}
.puck-card--archive-year .puck-card-description {
  grid-area: description;
  margin: 0;
  color: var(--nitop-ink-soft);
  white-space: pre-line;
  line-height: 1.65;
}
.puck-card--archive-year > div > div { grid-area: button; }
.puck-card--archive-year .puck-card-button {
  margin: 0;
  white-space: nowrap;
  background: var(--nitop-teal-dark);
  color: #fff;
}
.puck-card--archive-year .puck-card-button:hover {
  background: var(--nitop-terracotta);
  color: #fff;
}

/* Exhibitors page: keep explanatory copy anchored to the timeline it introduces. */
.puck-card--exhibitor-callout {
  padding: 30px 36px;
  background: linear-gradient(135deg, var(--nitop-teal-pale) 0%, var(--nitop-paper) 100%);
  border: 1px solid rgba(93, 136, 151, 0.28);
  border-left: 5px solid var(--nitop-teal);
  box-shadow: 0 12px 28px -22px rgba(63, 104, 117, 0.35);
}
.puck-card--exhibitor-callout:hover {
  transform: none;
}
.puck-card--exhibitor-callout .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--exhibitor-callout .puck-card-title {
  font-size: clamp(1.3rem, 2.2vw, 1.65rem);
  margin-bottom: 10px;
}
.puck-card--exhibitor-callout .puck-card-description {
  max-width: 900px;
  color: var(--nitop-ink-soft);
  line-height: 1.72;
}

.puck-grid:has(.puck-card--document-section),
.puck-grid:has(.puck-card--archive-document),
.puck-grid:has(.puck-card--archive-link-row),
.puck-grid:has(.puck-card--archive-unavailable-row),
.puck-grid:has(.puck-card--archive-year) {
  grid-auto-rows: auto !important;
}

@media (max-width: 720px) {
  .puck-card--document-section,
  .puck-card--archive-document {
    padding: 28px 4px 30px;
  }
  .puck-card--archive-link-row {
    display: block;
    padding: 22px;
  }
  .puck-card--archive-link-row > div,
  .puck-card--archive-year > div {
    display: block;
  }
  .puck-card--archive-link-row > div > div {
    display: block;
  }
  .puck-card--archive-link-row .puck-card-button {
    margin-top: 18px;
    white-space: normal;
  }
  .puck-card--archive-year {
    display: block;
    padding: 24px 18px 24px 36px;
  }
  .puck-card--archive-year .puck-card-title {
    margin-bottom: 8px;
  }
  .puck-card--archive-year .puck-card-button {
    margin-top: 18px;
    white-space: normal;
  }
}

/* Conference Information — editorial hierarchy instead of paragraph cards */
.puck-card--conference-quote {
  position: relative;
  overflow: hidden;
  padding: 46px 54px;
  background: linear-gradient(125deg, var(--nitop-teal-dark) 0%, var(--nitop-teal) 100%);
  border: 0;
  box-shadow: 0 18px 42px -22px rgba(63, 104, 117, 0.7);
}
.puck-card--conference-quote::after {
  content: "“";
  position: absolute;
  right: 28px;
  bottom: -44px;
  color: rgba(255, 255, 255, 0.12);
  font: 700 12rem/1 var(--nitop-serif);
}
.puck-card--conference-quote:hover { transform: none; }
.puck-card--conference-quote .puck-card-eyebrow { color: rgba(255, 255, 255, 0.72); }
.puck-card--conference-quote .puck-card-title {
  max-width: 720px;
  color: #fff;
  font-size: clamp(1.55rem, 3vw, 2.15rem);
}
.puck-card--conference-quote .puck-card-description {
  position: relative;
  z-index: 1;
  max-width: 880px;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--nitop-serif);
  font-size: clamp(1.08rem, 2vw, 1.3rem);
  font-style: italic;
  line-height: 1.65;
}

.puck-card--conference-feature {
  padding: 42px 48px;
  background: linear-gradient(135deg, #fffaf2 0%, var(--nitop-sand) 100%);
  border: 1px solid #e5d4bd;
  border-top: 5px solid var(--nitop-amber);
  box-shadow: 0 16px 38px -24px rgba(38, 34, 30, 0.35);
}
.puck-card--conference-feature:hover { transform: none; }
.puck-card--conference-feature .puck-card-eyebrow { color: var(--nitop-terracotta); }
.puck-card--conference-feature .puck-card-title {
  max-width: 760px;
  color: var(--nitop-ink);
  font-size: clamp(1.45rem, 2.5vw, 1.9rem);
}
.puck-card--conference-feature .puck-card-description {
  margin-top: 18px;
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.78;
  white-space: pre-line;
  column-count: 2;
  column-gap: 48px;
  column-rule: 1px solid rgba(93, 136, 151, 0.22);
}

.puck-card--conference-group {
  padding: 34px 34px 36px;
  background: transparent;
  border: 0;
  border-top: 3px solid var(--nitop-teal);
  border-radius: 0;
  box-shadow: none;
}
.puck-card--conference-group:hover {
  transform: none;
  box-shadow: none;
}
.puck-card--conference-group .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--conference-group .puck-card-title { font-size: 1.55rem; }
.puck-card--conference-group .puck-card-description {
  color: var(--nitop-ink-soft);
  line-height: 1.72;
  white-space: pre-line;
}

/* Home page: make the experience section feel editorial rather than tiled. */
.puck-card--home-lead {
  background: linear-gradient(135deg, #f4fbfb 0%, var(--nitop-paper) 100%);
  border: 1px solid rgba(93, 136, 151, 0.25);
  border-top: 5px solid var(--nitop-teal);
  border-radius: var(--nitop-radius);
  padding: 36px 42px 40px;
  box-shadow: 0 14px 34px -24px rgba(63, 104, 117, 0.35);
}
.puck-card--home-lead .puck-card-eyebrow,
.puck-card--home-share .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--home-lead .puck-card-title {
  font-size: clamp(1.45rem, 2.5vw, 1.9rem);
}
.puck-card--home-lead .puck-card-description {
  max-width: 820px;
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.72;
}
.puck-card--home-lead .puck-card-button {
  background: var(--nitop-teal-dark);
  color: #fff;
}
.puck-card--home-lead .puck-card-button:hover {
  background: var(--nitop-terracotta);
  color: #fff;
}
.puck-card--home-share {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-left: 4px solid var(--nitop-teal);
}
.puck-card--home-share .puck-card-button {
  background: var(--nitop-teal-pale);
  color: var(--nitop-teal-dark);
}
.puck-card--home-share .puck-card-button:hover {
  background: var(--nitop-teal);
  color: #fff;
}

.puck-card--conference-poster,
.puck-card--conference-pie {
  padding: 38px 38px 40px;
  border: 1px solid var(--nitop-line);
  box-shadow: 0 14px 34px -24px rgba(38, 34, 30, 0.35);
}
.puck-card--conference-poster {
  background: linear-gradient(145deg, #fff 0%, #fff8ed 100%);
  border-top: 5px solid var(--nitop-amber);
}
.puck-card--conference-pie {
  background: linear-gradient(145deg, #fff 0%, var(--nitop-teal-pale) 100%);
  border-top: 5px solid var(--nitop-teal);
}
.puck-card--conference-poster:hover,
.puck-card--conference-pie:hover { transform: translateY(-2px); }
.puck-card--conference-poster .puck-card-title,
.puck-card--conference-pie .puck-card-title { font-size: 1.55rem; }
.puck-card--conference-pie .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--conference-poster .puck-card-description,
.puck-card--conference-pie .puck-card-description {
  line-height: 1.75;
  white-space: pre-line;
}
.puck-card--conference-poster .puck-card-button {
  background: var(--nitop-terracotta);
  color: #fff;
}
.puck-card--conference-poster .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
}

@media (max-width: 720px) {
  .puck-card--conference-quote,
  .puck-card--conference-feature,
  .puck-card--conference-group,
  .puck-card--conference-poster,
  .puck-card--conference-pie {
    padding: 28px 22px;
  }
  .puck-card--conference-feature .puck-card-description {
    column-count: 1;
  }
}

/* reference FAQ cards — keep the question prominent and the answer easy to scan */
.puck-card--faq {
  border-left: 4px solid var(--nitop-terracotta);
  padding: 28px 32px;
}
.puck-card--faq .puck-card-eyebrow {
  color: var(--nitop-terracotta);
  margin-bottom: 8px;
}
.puck-card--faq .puck-card-title {
  font-size: clamp(1.16rem, 2vw, 1.42rem);
  line-height: 1.3;
  margin-bottom: 14px;
}
.puck-card--faq .puck-card-description {
  font-size: 1rem;
  line-height: 1.75;
  max-width: 760px;
}
.puck-card--faq .puck-card-button {
  margin-top: 18px;
}
/* variant: committee/people */
.puck-card--person {
  text-align: center;
  background: linear-gradient(160deg, #f4fbfb 0%, var(--nitop-paper) 100%);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-teal);
  padding-top: 32px;
}
/* Person cards now render real portraits; suppress the old decorative placeholder. */
.puck-card--person::before {
  content: none;
  display: none;
}
.puck-card--person:not(:has(.puck-card-avatar))::before {
  content: "";
  display: block;
  width: 142px;
  height: 142px;
  margin: 0 auto 22px;
  box-sizing: border-box;
  border: 5px solid var(--nitop-amber);
  border-radius: 50%;
  background-color: #fffaf4;
  background-image: url("https://sites.getrecur.com/media/nitop/prod/e0699c85-0f1b-41fa-ac62-e74124ffe302/images/2026/08/8de73027-a80c-45a1-946d-1fde642c126c.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 106px auto;
}
.puck-card--person .puck-card-avatar {
  width: 142px !important;
  height: 142px !important;
  min-height: 142px !important;
  margin: 0 auto 22px;
  overflow: visible !important;
  border-radius: 50%;
}
.puck-card--person .puck-card-avatar-img {
  width: 142px !important;
  height: 142px !important;
  object-fit: cover;
  object-position: center center;
  box-shadow: 0 0 0 5px var(--nitop-amber);
}
.puck-card--person .puck-card-title { font-size: 1.18rem; color: var(--nitop-ink); }
.puck-card--person .puck-card-eyebrow { color: var(--nitop-teal-dark); }
.puck-card--person .puck-card-description { font-size: 0.93rem; color: var(--nitop-ink-soft); }
/* variant: session types */
.puck-card--session,
.puck-card--speaker,
.puck-card--speaker-workshop {
  border-left: 4px solid var(--nitop-terracotta);
}
.puck-card--speaker,
.puck-card--speaker-workshop {
  display: flex;
  flex-direction: column;
  position: relative;
  height: 100% !important;
  min-height: 520px !important;
  box-sizing: border-box;
}
.puck-card--speaker,
.puck-card--speaker-workshop { padding: 28px 28px; }
.puck-card--speaker-workshop .puck-card-title {
  font-size: 1.16rem;
  margin-bottom: 8px;
}
.puck-card--speaker .puck-card-title,
.puck-card--speaker-workshop .puck-card-title {
  min-height: 2.6em;
}
.puck-card--speaker .puck-card-description,
.puck-card--speaker-workshop .puck-card-description {
  min-height: 0;
  max-height: none;
  overflow: visible;
  display: block;
}
.puck-card--speaker-workshop .puck-card-description {
  font-size: 0.91rem;
  line-height: 1.5;
}
.puck-card--speaker .puck-card-avatar-img {
  width: 148px;
  height: 148px;
}
.puck-card--speaker-workshop .puck-card-avatar-img {
  width: 148px;
  height: 148px;
}
.puck-card--speaker .puck-card-avatar,
.puck-card--speaker-workshop .puck-card-avatar {
  width: 100%;
  height: 174px !important;
  min-height: 174px !important;
  justify-content: center;
  align-items: flex-start;
  overflow: visible !important;
  margin: 0 0 28px;
  flex: 0 0 auto;
}
.puck-card--speaker .puck-card-avatar-img,
.puck-card--speaker-workshop .puck-card-avatar-img {
  display: block;
  flex: 0 0 148px;
  object-fit: cover;
  object-position: center top;
  border-radius: 50%;
}
.puck-card--speaker .puck-card-button,
.puck-card--speaker-workshop .puck-card-button {
  position: static;
  margin-top: 0;
  align-self: flex-start;
}
.puck-card--speaker > div:not(.puck-card-avatar),
.puck-card--speaker-workshop > div:not(.puck-card-avatar) {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
}
.puck-card--speaker .puck-card-description + div,
.puck-card--speaker-workshop .puck-card-description + div {
  margin-top: auto;
}

.puck-card-avatar { display: flex; justify-content: center; margin-bottom: 14px; }
.puck-card-avatar-img { width: 110px; height: 110px; object-fit: cover; border-radius: 50%; }
.puck-card-avatar--ring .puck-card-avatar-img { box-shadow: 0 0 0 4px var(--nitop-amber); }

/* ---------- grids ---------- */
.puck-grid { display: grid; gap: 26px; padding-top: 18px; padding-bottom: 30px; }
.puck-grid-heading { font-family: var(--nitop-serif); }
.puck-grid-column { min-width: 0; }

/* ---------- stats ---------- */
.puck-stats { padding-top: 20px; padding-bottom: 20px; }
.puck-stats-title {
  font-family: var(--nitop-serif);
  font-size: 1.8rem;
  text-align: center;
  margin-bottom: 20px;
}
.puck-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 22px; }
.puck-stat-card {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-radius: var(--nitop-radius);
  padding: 30px 22px;
  text-align: center;
  box-shadow: var(--nitop-shadow);
}
.puck-stat-value {
  font-family: var(--nitop-serif);
  font-size: 2.6rem;
  font-weight: 700;
  color: var(--nitop-terracotta);
  display: block;
}
.puck-stat-label { font-weight: 600; color: var(--nitop-ink); margin-top: 6px; display: block; }
.puck-stat-description { color: var(--nitop-ink-soft); font-size: 0.9rem; margin-top: 4px; }

/* ---------- CTA band ---------- */
.puck-cta {
  background: linear-gradient(135deg, var(--nitop-terracotta-dark) 0%, var(--nitop-terracotta) 50%, var(--nitop-amber) 100%);
  border-radius: 20px;
  padding: 60px 44px;
  text-align: center;
  margin-top: 40px;
  margin-bottom: 60px;
  box-shadow: 0 22px 50px -18px rgba(158, 63, 34, 0.55);
}
.puck-cta-title {
  font-family: var(--nitop-serif);
  color: #ffffff;
  font-size: clamp(1.7rem, 3.4vw, 2.4rem);
  margin: 0 0 12px;
}
.puck-cta-description { color: rgba(255, 240, 228, 0.94); max-width: 640px; margin: 0 auto 26px; font-size: 1.05rem; }
.puck-cta-buttons { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.puck-cta-primary, .puck-cta-secondary {
  display: inline-block;
  padding: 14px 32px;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.15s ease;
}
.puck-cta-primary { background: #ffffff; color: var(--nitop-terracotta-dark); }
.puck-cta-primary:hover { transform: translateY(-2px); }
.puck-cta-secondary { border: 1.5px solid rgba(255, 255, 255, 0.7); color: #fff; }
.puck-cta-secondary:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-2px); }

/* ---------- images ---------- */
.puck-image-img, .puck-image img { border-radius: var(--nitop-radius); box-shadow: var(--nitop-shadow); max-width: 100%; height: auto; }
.puck-image-caption { text-align: center; color: var(--nitop-ink-soft); font-size: 0.88rem; margin-top: 10px; }

/* uniform-height photo strips — images inside a grid are cropped to the same height */
.puck-grid .puck-image { overflow: hidden; border-radius: var(--nitop-radius); }
.puck-grid .puck-image-img,
.puck-grid .puck-image img {
  width: 100% !important;
  height: 280px !important;
  object-fit: cover !important;
  border-radius: var(--nitop-radius) !important;
  display: block !important;
}

/* extra breathing room around image-grid sections */
.puck-grid:has(.puck-image) { padding-top: 32px; padding-bottom: 48px; }

/* ---------- header ---------- */
.site-header {
  background: rgba(250, 246, 241, 0.96);
  border-bottom: 1px solid var(--nitop-line);
  backdrop-filter: blur(10px);
}
.header-logo-img { max-height: 108px; width: auto; padding: 8px 0; margin-right: 8px; }
.header-grid { padding-left: 20px; padding-right: 20px; }
.header-grid,
.header-grid .nav-link,
.header-grid .dropdown-arrow,
.header-grid .header-cta-button,
.mobile-nav,
.mobile-nav .nav-link {
  font-family: var(--nitop-sans);
  font-size: 0.9rem;
  line-height: 1.2;
}
.nav-link {
  font-weight: 600;
  color: var(--nitop-ink);
  text-decoration: none;
  padding: 10px 6px;
  white-space: nowrap;
  border-radius: 8px;
  transition: color 0.15s ease, background 0.15s ease;
}
.nav-link:hover { color: var(--nitop-teal-dark); background: var(--nitop-teal-pale); }
.nav-dropdown {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-radius: 12px;
  box-shadow: var(--nitop-shadow);
  padding: 8px;
}
.nav-dropdown .nav-link { display: block; }
.header-cta-button {
  display: inline-block;
  background: var(--nitop-terracotta);
  color: #ffffff;
  font-weight: 600;
  font-size: 0.9rem;
  padding: 11px 26px;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.15s ease;
}
.header-cta-button:hover { background: var(--nitop-terracotta-dark); }
/* outline variant — applied to the Member Login button by URL targeting */
a.header-cta-button[href*="member.getrecur.com/nitop"] {
  background: transparent;
  color: var(--nitop-ink);
  border: 1.5px solid var(--nitop-line);
  padding: 10px 22px;
}
a.header-cta-button[href*="member.getrecur.com/nitop"]:hover {
  background: var(--nitop-teal-pale);
  border-color: var(--nitop-teal);
  color: var(--nitop-teal-dark);
}
.mobile-nav { background: var(--nitop-cream); }

/* ---------- footer ---------- */
.site-footer {
  background: #2c241e;
  color: #d8cfc4;
  margin-top: 70px;
  padding: 44px 24px 30px;
}
.site-footer-content {
  max-width: none;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(260px, 1.35fr) repeat(2, minmax(210px, 1fr)) minmax(150px, 0.75fr);
  gap: 28px;
  align-items: start;
}
.site-footer-title {
  font-family: var(--nitop-serif);
  color: var(--nitop-amber);
  font-size: 1.05rem;
  margin-bottom: 14px;
}
.site-footer-section:has(.site-footer-logo) { margin-top: -10px; }
.site-footer-logo { max-height: 104px; width: auto; object-fit: contain; object-position: left center; margin-bottom: 12px; }
/* logo section already shows the brand name — hide the redundant text title */
.site-footer-section:has(.site-footer-logo) .site-footer-title { display: none; }
.site-footer-text, .site-footer-description { color: #b9ac9d; font-size: 0.94rem; line-height: 1.7; }
.site-footer-links a, .site-footer-contact a {
  color: #e8ddd0;
  text-decoration: none;
  display: block;
  padding: 4px 0;
  font-size: 0.94rem;
}
.site-footer-links a:hover, .site-footer-contact a:hover { color: var(--nitop-amber); }
.site-footer-contact { color: #b9ac9d; font-size: 0.94rem; }
.footer-bottom-bar {
  max-width: none;
  width: 100%;
  box-sizing: border-box;
  margin: 40px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(226, 159, 76, 0.25);
  color: #93887b;
  font-size: 0.85rem;
}
.footer-bottom-bar-link { color: #c9bdae; }

@media (max-width: 980px) {
  .site-footer-content {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
}

@media (max-width: 720px) {
  .site-footer {
    padding-top: 36px;
  }
  .site-footer-content {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .site-footer-section:has(.site-footer-logo) {
    margin-top: -6px;
  }
  .footer-bottom-bar {
    margin-top: 32px;
  }
}

/* ---------- recur event widgets ---------- */
.recur-event-list-title, .recur-product-list-title {
  font-family: var(--nitop-serif);
  font-size: 1.9rem;
  text-align: center;
  margin: 20px 0 28px;
  color: var(--nitop-ink);
}
.recur-event-list-grid, .recur-product-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 26px;
}
.recur-event-card, .recur-product-card {
  background: var(--nitop-paper);
  border: 1px solid var(--nitop-line);
  border-radius: var(--nitop-radius);
  box-shadow: var(--nitop-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.recur-event-card:hover, .recur-product-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -14px rgba(38, 34, 30, 0.25); }
.recur-event-card-image, .recur-product-card-image { width: 100%; height: 190px; object-fit: cover; }
.recur-event-card-body, .recur-product-card-body { padding: 24px 22px 26px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.recur-event-card-title, .recur-product-card-title {
  font-family: var(--nitop-serif);
  font-size: 1.22rem;
  font-weight: 700;
  color: var(--nitop-ink);
  margin: 0;
}
.recur-event-card-date {
  color: var(--nitop-teal-dark);
  font-weight: 600;
  font-size: 0.88rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.recur-event-card-description, .recur-product-card-description { color: var(--nitop-ink-soft); font-size: 0.95rem; flex: 1; }
.recur-product-card-price { font-weight: 700; color: var(--nitop-terracotta-dark); font-size: 1.05rem; }
.recur-event-card-button, .recur-product-card-button {
  align-self: flex-start;
  display: inline-block;
  margin-top: 8px;
  padding: 11px 24px;
  border-radius: 999px;
  background: var(--nitop-teal);
  color: #fff;
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
}
.recur-event-card-button:hover, .recur-product-card-button:hover { background: var(--nitop-teal-dark); }

/* The current NITOP registration event uses a tall logo asset rather than a
   landscape photo. Treat it as a compact brand panel so the event details
   remain the visual focus instead of inheriting a large empty image area. */
.recur-event-card:has(img[alt*="2027 NITOP"]) {
  display: grid !important;
  grid-template-columns: 230px minmax(0, 1fr) !important;
  min-height: 180px;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-image {
  width: 230px !important;
  height: 180px !important;
  min-height: 0 !important;
  background: linear-gradient(145deg, #fffaf2 0%, var(--nitop-sand) 100%);
  overflow: hidden;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-body {
  padding: 30px 38px 32px !important;
  gap: 10px;
  justify-content: center !important;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-title {
  font-size: 1.5rem;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-date {
  font-size: 0.9rem;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-button {
  background: var(--nitop-terracotta);
  margin-top: 10px;
}
.recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-button:hover {
  background: var(--nitop-terracotta-dark);
}

@media (max-width: 720px) {
  .recur-event-card:has(img[alt*="2027 NITOP"]) {
    display: flex !important;
    flex-direction: column;
    min-height: 0;
  }
  .recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-image {
    width: 100% !important;
    height: 155px !important;
  }
  .recur-event-card:has(img[alt*="2027 NITOP"]) .recur-event-card-body {
    padding: 24px 22px 26px !important;
  }
}

/* Registration's NITOP mark is a tall portrait asset. Contain that logo so
   the flame and wordmark remain fully visible; leave other product imagery
   on the normal photographic crop. */
.recur-product-card-image:has(img[alt*="NITOP"]) {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fffdfb;
}
.recur-product-card-image:has(img[alt*="NITOP"]) img {
  object-fit: contain !important;
  padding: 14px 20px;
  box-sizing: border-box;
}

.recur-event-list-empty, .recur-product-list-empty {
  text-align: center;
  color: var(--nitop-ink-soft);
  background: var(--nitop-sand);
  border-radius: var(--nitop-radius);
  padding: 44px 24px;
  font-size: 1rem;
}

/* Proposal submission links: flatten the three authoring columns into a
   six-track layout so five buttons form three balanced links above two
   centered links, rather than leaving the last grid cell empty. */
@media (min-width: 721px) {
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 18px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column {
    display: contents !important;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(1) > .puck-button-container:nth-child(1) {
    grid-column: 1 / span 2;
    grid-row: 1;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(2) > .puck-button-container:nth-child(1) {
    grid-column: 3 / span 2;
    grid-row: 1;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(3) > .puck-button-container:nth-child(1) {
    grid-column: 5 / span 2;
    grid-row: 1;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(1) > .puck-button-container:nth-child(2) {
    grid-column: 2 / span 2;
    grid-row: 2;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-button-container) + .puck-text + .puck-grid > .puck-grid-column:nth-child(2) > .puck-button-container:nth-child(2) {
    grid-column: 4 / span 2;
    grid-row: 2;
  }
}

/* Center the Recur embed widget containers (MembershipList, ProductList) */
[data-recur-widget="MembershipList"],
[data-recur-widget="ProductList"] {
  max-width: var(--nitop-max);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
/* When products load, the grid should left-align its card text but stay centered as a block */
[data-recur-widget="MembershipList"] .recur-product-list-grid,
[data-recur-widget="ProductList"] .recur-product-list-grid {
  text-align: left;
  justify-content: center;
}

/* calendar */
.recur-event-calendar-title { font-family: var(--nitop-serif); font-size: 1.6rem; margin-bottom: 18px; }
.recur-event-calendar-day { border: 1px solid var(--nitop-line); background: var(--nitop-paper); }
.recur-event-calendar-event {
  background: var(--nitop-teal-pale);
  color: var(--nitop-teal-dark);
  border-radius: 6px;
  padding: 2px 6px;
  font-size: 0.78rem;
  font-weight: 600;
}
.recur-event-modal-title { font-family: var(--nitop-serif); color: var(--nitop-ink); }
.recur-event-modal-body { color: var(--nitop-ink-soft); }
.recur-event-modal-button {
  background: var(--nitop-teal);
  color: #fff;
  border-radius: 999px;
  padding: 11px 26px;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
}

/* ---------- page title (interior fallback) ---------- */
.page-title { font-family: var(--nitop-serif); color: var(--nitop-ink); }

/* ---------- responsive ---------- */
@media (max-width: 720px) {
  .puck-cta { padding: 44px 24px; border-radius: 14px; margin-left: 16px; margin-right: 8px; }
  .puck-card { padding: 24px 20px; }
  .header-logo-img { max-height: 60px; padding: 6px 0; margin-right: 12px; }

  /* registration page: promo callout — reduce wide horizontal padding */
  .puck-card--promo { padding: 28px 24px; }

  /* registration page: notice card — reduce side padding to match base card */
  .puck-card--notice { padding: 24px 20px; }

  /* registration page: step cards (3-col grid) and any other multi-col grids
     collapse to a single column on narrow screens */
  .puck-grid { grid-template-columns: 1fr !important; }

  /* keep every speaker card and portrait consistent on phones */
  .puck-card--speaker,
  .puck-card--speaker-workshop {
    height: auto !important;
    min-height: 0 !important;
  }
  .puck-card--speaker .puck-card-button,
  .puck-card--speaker-workshop .puck-card-button {
    margin-top: 24px;
  }
}

/* thin chevron instead of filled ▼ in nav dropdowns */
.dropdown-arrow {
  font-size: 0;
  display: inline-block;
  vertical-align: middle;
  margin-left: 6px;
}
.header-grid .dropdown-arrow {
  font-size: 0 !important;
}
.header-grid .dropdown-arrow::before {
  content: none !important;
  display: none !important;
}
.dropdown-arrow::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}

/* all grid columns hold exactly one card — let cards stretch to equalise row heights */
.puck-grid-column { display: flex; flex-direction: column; gap: 26px; }
.puck-grid-column > .puck-card { flex: 1 !important; height: 100% !important; }

/* Speaker grids stack cards inside columns. Give each individual card one safe,
   content-preserving size instead of stretching cards to the full column height. */
.puck-grid-column > .puck-card--speaker,
.puck-grid-column > .puck-card--speaker-workshop {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 600px !important;
  overflow: visible !important;
}

@media (max-width: 720px) {
  .puck-grid-column > .puck-card--speaker,
  .puck-grid-column > .puck-card--speaker-workshop {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 640px !important;
  }
  .puck-grid-column > .puck-card--speaker .puck-card-button,
  .puck-grid-column > .puck-card--speaker-workshop .puck-card-button {
    margin-top: 0;
  }
}

/* Imported information cards should fit their content, not inherit equal-height rows. */
.puck-grid-column > .puck-card--source-section,
.puck-grid-column > .puck-card--archive-resource,
.puck-grid-column > .puck-card--archive-document,
.puck-grid-column > .puck-card--archive-link-row,
.puck-grid-column > .puck-card--archive-unavailable-row {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

/* remove renderer default white box behind cards in grid columns */
.puck-grid-column {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* ===== Photo Gallery page ===== */

/* quote interstitial card */
.puck-card--quote {
  background: linear-gradient(135deg, var(--nitop-terracotta) 0%, var(--nitop-terracotta-dark) 100%);
  border: none !important;
  border-radius: 20px;
  padding: 52px 64px !important;
  text-align: center;
  box-shadow: 0 22px 50px -18px rgba(158, 63, 34, 0.5);
}
.puck-card--quote .puck-card-title {
  font-family: var(--nitop-serif);
  font-size: 5rem;
  color: rgba(255, 255, 255, 0.32);
  line-height: 0.6;
  margin: 0 0 16px;
}
.puck-card--quote .puck-card-description {
  font-family: var(--nitop-serif) !important;
  font-size: clamp(1.15rem, 2.4vw, 1.6rem) !important;
  color: rgba(255, 255, 255, 0.96) !important;
  font-style: italic !important;
  line-height: 1.65 !important;
  max-width: 780px;
  margin: 0 auto;
}
.puck-card--quote .puck-card-eyebrow {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  margin-top: 22px;
  margin-bottom: 0;
}

@media (max-width: 720px) {
  .puck-card--quote { padding: 36px 28px !important; }
}

/* ===== Recur embed widgets (ContactForm, DonationForm) — NITOP styling ===== */
/* Real DOM classes (verified live): .recur-widget wrapper, .recur-contact-form,
   .recur-donation-form, .donation-amount-btn, .donation-custom-input, etc.
   Widgets ship inline styles, so !important is required. */

/* Center wrappers + swap the widget theme tokens to NITOP brand */
.recur-widget,
.recur-donation {
  margin-left: auto !important;
  margin-right: auto !important;
  --recur-primary: var(--nitop-terracotta) !important;
  --recur-accent: var(--nitop-terracotta) !important;
  --recur-text: var(--nitop-ink) !important;
  --recur-muted: var(--nitop-ink-soft) !important;
}

/* Card container look for both forms */
.recur-contact-form,
.recur-donation-form,
.recur-donation {
  background: #ffffff !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 18px !important;
  box-shadow: 0 14px 38px -18px rgba(38, 34, 30, 0.22) !important;
  padding: 36px 32px !important;
  box-sizing: border-box !important;
}

/* The live Contact component wraps its unclassed form in .puck-contact-widget. */
.puck-contact-widget {
  background: #ffffff !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 18px !important;
  box-shadow: 0 14px 38px -18px rgba(38, 34, 30, 0.22) !important;
  padding: 32px !important;
  box-sizing: border-box !important;
}

.recur-contact-form h3,
.recur-donation-form h3,
.recur-donation h3 {
  font-family: var(--nitop-serif) !important;
  color: var(--nitop-ink) !important;
  font-size: 1.5rem !important;
  margin: 0 0 6px !important;
}
.puck-contact-widget h3 {
  font-family: var(--nitop-serif) !important;
  color: var(--nitop-ink) !important;
  font-size: 1.5rem !important;
  margin: 0 0 6px !important;
}
.recur-contact-form > p { color: var(--nitop-ink-soft) !important; margin: 0 0 20px !important; }
.puck-contact-widget > p { color: var(--nitop-ink-soft) !important; margin: 0 0 20px !important; }

/* Inputs, textareas, selects — both widgets */
.recur-contact-form input[type="text"],
.recur-contact-form input[type="email"],
.recur-contact-form input[type="tel"],
.recur-contact-form input[type="number"],
.recur-contact-form textarea,
.puck-contact-widget input[type="text"],
.puck-contact-widget input[type="email"],
.puck-contact-widget input[type="tel"],
.puck-contact-widget textarea,
.recur-donation-form input[type="text"],
.recur-donation-form input[type="number"],
.recur-donation-form .donation-custom-input,
.recur-donation-form select,
.recur-donation input[type="text"],
.recur-donation input[type="number"],
.recur-donation .donation-custom-input,
.recur-donation select {
  border: 1.5px solid var(--nitop-line) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--nitop-ink) !important;
  padding: 12px 14px !important;
  font-family: var(--nitop-sans) !important;
  font-size: 0.95rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color 0.18s, box-shadow 0.18s !important;
}
.recur-contact-form input:focus,
.recur-contact-form textarea:focus,
.puck-contact-widget input:focus,
.puck-contact-widget textarea:focus,
.recur-donation-form input:focus,
.recur-donation-form select:focus,
.recur-donation input:focus,
.recur-donation select:focus {
  border-color: var(--nitop-terracotta) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(193, 80, 46, 0.12) !important;
}
.recur-contact-form textarea { min-height: 120px !important; resize: vertical !important; }
.recur-contact-form label {
  font-family: var(--nitop-sans) !important;
  font-weight: 600 !important;
  color: var(--nitop-ink) !important;
  font-size: 0.92rem !important;
  margin-bottom: 6px !important;
}
.puck-contact-widget label {
  font-family: var(--nitop-sans) !important;
  font-weight: 600 !important;
  color: var(--nitop-ink) !important;
  font-size: 0.92rem !important;
  margin-bottom: 6px !important;
}

/* Agreement + spam check panels */
.recur-contact-form label:has(input[type="checkbox"]) {
  background: var(--nitop-sand) !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 10px !important;
  padding: 14px 16px !important;
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  color: var(--nitop-ink-soft) !important;
  display: block !important;
}
.puck-contact-widget label:has(input[type="checkbox"]) {
  background: var(--nitop-sand) !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 10px !important;
  padding: 14px 16px !important;
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  color: var(--nitop-ink-soft) !important;
  display: block !important;
}

/* Buttons — contact submit and donation continue */
.recur-contact-form button[type="submit"],
.recur-contact-form button:last-of-type,
.puck-contact-widget button[type="submit"],
.puck-contact-widget button:last-of-type,
.recur-donation-form button[type="submit"],
.recur-donation-form .donation-submit,
.recur-donation-form .donation-continue,
.recur-donation-form .recur-donation-submit,
.recur-donation button[type="submit"],
.recur-donation .donation-submit,
.recur-donation .donation-continue,
.recur-donation .recur-donation-submit,
.donation-continue-btn,
.donation-submit-btn {
  background: var(--nitop-terracotta) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 14px 36px !important;
  font-family: var(--nitop-sans) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  width: 100% !important;
  margin-top: 10px !important;
  transition: background 0.18s, transform 0.15s !important;
}
.recur-contact-form button[type="submit"]:hover,
.puck-contact-widget button[type="submit"]:hover,
.recur-donation-form button[type="submit"]:hover,
.recur-donation-form .recur-donation-submit:hover,
.recur-donation button[type="submit"]:hover,
.recur-donation .recur-donation-submit:hover {
  background: var(--nitop-terracotta-dark) !important;
  transform: translateY(-1px) !important;
}
.recur-donation-form button:disabled,
.recur-donation button:disabled,
.recur-donation-form .recur-donation-submit:disabled,
.recur-donation .recur-donation-submit:disabled,
.donation-continue-btn:disabled,
.donation-submit-btn:disabled {
  background: rgba(193, 80, 46, 0.38) !important;
  color: rgba(255, 255, 255, 0.85) !important;
  cursor: default !important;
  transform: none !important;
}

/* Donation amount preset buttons */
.donation-amount-btn,
.donation-other-btn {
  background: #ffffff !important;
  border: 1.5px solid var(--nitop-line) !important;
  border-radius: 12px !important;
  padding: 14px 10px !important;
  font-family: var(--nitop-sans) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--nitop-ink) !important;
  cursor: pointer !important;
  transition: border-color 0.18s, background 0.18s, color 0.18s !important;
}
.donation-amount-btn:hover,
.donation-other-btn:hover {
  border-color: var(--nitop-terracotta) !important;
  color: var(--nitop-terracotta) !important;
}
.donation-amount-btn.selected,
.donation-amount-btn.active,
.donation-amount-btn[aria-pressed="true"],
.donation-other-btn.selected,
.donation-other-btn.active,
.donation-other-btn[aria-pressed="true"] {
  background: var(--nitop-terracotta) !important;
  border-color: var(--nitop-terracotta) !important;
  color: #ffffff !important;
}
.recur-donation .recur-donation-amount-button[style*="background: var(--color-text"],
.recur-donation-form .recur-donation-amount-button[style*="background: var(--color-text"] {
  background: var(--nitop-terracotta) !important;
  border-color: var(--nitop-terracotta) !important;
  color: #ffffff !important;
}

/* Donation form rhythm — the widget's inline grid collapses the two amount rows */
.recur-donation .donation-amounts,
.recur-donation-form .donation-amounts {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  row-gap: 14px !important;
  column-gap: 12px !important;
  margin-bottom: 26px !important;
}
.recur-donation .donation-other-btn,
.recur-donation-form .donation-other-btn {
  grid-column: auto !important;
}
.recur-donation .donation-frequency,
.recur-donation-form .donation-frequency {
  margin-top: 0 !important;
  margin-bottom: 24px !important;
}
.recur-donation .recur-donation-frequency-label,
.recur-donation-form .recur-donation-frequency-label {
  margin-bottom: 10px !important;
}
.recur-donation .recur-donation-frequency,
.recur-donation-form .recur-donation-frequency {
  min-height: 54px !important;
}
.recur-donation .donation-continue-btn,
.recur-donation .donation-submit-btn,
.recur-donation-form .donation-continue-btn,
.recur-donation-form .donation-submit-btn {
  margin-top: 14px !important;
}
.recur-donation .donation-fee-coverage,
.recur-donation-form .donation-fee-coverage {
  margin: 4px 0 18px !important;
  padding: 14px 16px !important;
  background: var(--nitop-sand) !important;
  border: 1px solid var(--nitop-line) !important;
  border-radius: 12px !important;
}
.recur-donation .donation-fee-coverage label,
.recur-donation-form .donation-fee-coverage label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  line-height: 1.45 !important;
}
.recur-donation .donation-fee-coverage input[type="checkbox"],
.recur-donation-form .donation-fee-coverage input[type="checkbox"] {
  flex: 0 0 auto !important;
  width: 19px !important;
  height: 19px !important;
  margin: 2px 0 0 !important;
}
.recur-donation > p:last-child,
.recur-donation-form > p:last-child {
  margin: 12px 0 0 !important;
  color: var(--nitop-ink-soft) !important;
  font-size: 0 !important;
}
.recur-donation > p:last-child::after,
.recur-donation-form > p:last-child::after {
  content: "Secure payment powered by Stripe";
  color: var(--nitop-ink-soft);
  font-size: 0.88rem;
}

/* Donation page — center the live Recur widget and let it use the available width */
#puck-content .puck-grid:has(.recur-donation) {
  width: min(100%, 680px);
  margin-left: auto;
  margin-right: auto;
}
#puck-content .puck-grid:has(.recur-donation) > .puck-grid-column {
  display: flex;
  justify-content: center;
  min-width: 0;
}
#puck-content .puck-grid:has(.recur-donation) .recur-donation {
  width: 100% !important;
  max-width: 640px !important;
  box-sizing: border-box !important;
}

/* Contact page — keep the information panel, FAQ panel, and form balanced side by side */
.puck-grid:has(.recur-contact-form) {
  align-items: start;
  gap: 32px;
}
.puck-grid:has(.puck-contact-widget) {
  align-items: stretch;
  gap: 32px;
}
.puck-grid:has(.puck-contact-widget) > .puck-grid-column {
  display: flex;
  flex-direction: column;
  align-self: start;
  min-width: 0;
}
.puck-grid:has(.puck-contact-widget) > .puck-grid-column:first-child {
  gap: 24px;
}
.puck-grid:has(.puck-contact-widget) > .puck-grid-column:first-child > .puck-card {
  flex: 0 0 auto;
  width: 100%;
  height: auto !important;
  box-sizing: border-box;
}
.puck-grid:has(.puck-contact-widget) .puck-contact-widget {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) {
  padding: 38px 36px;
  background: linear-gradient(145deg, #fffaf2 0%, var(--nitop-sand) 100%);
  border: 1px solid var(--nitop-line);
  border-left: 5px solid var(--nitop-teal);
  box-shadow: 0 14px 38px -18px rgba(38, 34, 30, 0.22);
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) .puck-card-title {
  font-size: clamp(1.35rem, 2.3vw, 1.7rem);
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) .puck-card-description {
  line-height: 1.75;
  white-space: pre-line;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) .puck-card-button {
  background: var(--nitop-terracotta);
  color: #fff;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]) .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  min-height: 0;
  padding: 30px 36px 32px;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) > div {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) .puck-card-eyebrow {
  color: var(--nitop-terracotta);
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) .puck-card-description {
  flex: 0 0 auto;
  line-height: 1.7;
  white-space: pre-line;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) .puck-card-button {
  align-self: flex-start;
  margin-top: 20px;
  padding: 12px 26px;
  border-radius: 999px;
  background: var(--nitop-terracotta);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
  color: #fff;
}

/* When the native form cannot load in a cross-origin preview, present a useful
   branded fallback instead of a small disconnected error box. The selector
   does not match the full form on the published site. */
.puck-contact-widget:not(:has(form)):has(> div:only-child) {
  min-height: 345px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(145deg, #f4fbfb 0%, var(--nitop-teal-pale) 100%) !important;
  border: 1px solid rgba(93, 136, 151, 0.28) !important;
  border-left: 5px solid var(--nitop-teal) !important;
  padding: 38px 36px !important;
}
.puck-contact-widget:not(:has(form)):has(> div:only-child)::before {
  content: "Send us a message";
  display: block;
  margin-bottom: 14px;
  color: var(--nitop-ink);
  font-family: var(--nitop-serif);
  font-size: clamp(1.35rem, 2.3vw, 1.7rem);
  font-weight: 700;
}
.puck-contact-widget:not(:has(form)):has(> div:only-child) > div {
  color: var(--nitop-ink-soft);
  font-size: 0.98rem;
  line-height: 1.7;
}
.puck-contact-widget:not(:has(form)):has(> div:only-child)::after {
  content: "You can still reach us directly at coordinator@nitop.org.";
  display: block;
  margin-top: 18px;
  color: var(--nitop-teal-dark);
  font-size: 0.9rem;
  font-weight: 700;
}
.puck-grid:has(.recur-contact-form) > .puck-grid-column {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.puck-grid:has(.recur-contact-form) .recur-widget,
.puck-grid:has(.recur-contact-form) .recur-contact-form {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

@media (max-width: 720px) {
  .puck-grid:has(.puck-contact-widget) {
    align-items: start;
  }
  .puck-grid:has(.puck-contact-widget) .puck-card:has(a[href^="mailto:coordinator@nitop.org"]),
  .puck-contact-widget:not(:has(form)):has(> div:only-child) {
    min-height: 0;
    padding: 28px 24px !important;
  }
  .puck-grid:has(.puck-contact-widget) .puck-card:has(a[href="/faqs"]) {
    flex: none;
    padding: 28px 24px !important;
  }
}

/* Contact quick links */
.puck-card--contact-path {
  background: linear-gradient(145deg, #ffffff 0%, #fcf7f0 100%);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-teal);
  padding: 28px 24px 26px;
  box-shadow: 0 12px 30px -20px rgba(38, 34, 30, 0.32);
}
.puck-card--contact-path:hover {
  border-top-color: var(--nitop-terracotta);
}
.puck-card--contact-path .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--contact-path .puck-card-title {
  font-size: 1.18rem;
  line-height: 1.25;
}
.puck-card--contact-path .puck-card-description {
  line-height: 1.6;
}
.puck-card--contact-path .puck-card-button {
  margin-top: 18px;
  background: var(--nitop-terracotta);
  color: #fff;
}
.puck-card--contact-path .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
}

@media (max-width: 720px) {
  .puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) {
    gap: 18px !important;
  }
  .puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image-img {
    height: 220px !important;
  }
  .puck-card--contact-path {
    padding: 24px 22px 22px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) {
    margin-top: 2.25rem;
    padding: 24px 18px 7px;
    border-radius: 14px 14px 0 0;
    font-size: 1.7rem;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text {
    padding: 3px 18px 22px;
    font-size: 0.96rem;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper {
    padding: 0 12px 5px;
    border-radius: 0 0 14px 14px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper table,
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody {
    display: block;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper thead {
    display: none;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tr {
    display: block;
    padding: 12px 2px;
    border-bottom: 1px solid var(--nitop-line);
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper tbody tr:last-child {
    border-bottom: 0;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 9px;
    width: auto !important;
    padding: 5px 6px !important;
    border: 0;
    background: transparent !important;
    text-align: left !important;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td::before {
    color: var(--nitop-ink-soft);
    font-size: 0.66rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    line-height: 1.45;
    text-transform: uppercase;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:first-child::before {
    content: 'Registration Type';
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(2)::before {
    content: 'By July 1';
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(3)::before {
    content: 'July 2 – Oct. 1';
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:last-child::before {
    content: 'Oct. 2 – Dec. 4';
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:first-child {
    color: var(--nitop-ink);
    font-size: 0.98rem;
    font-weight: 700;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper td:nth-child(n+2) {
    color: var(--nitop-terracotta-dark);
    font-size: 1rem;
    font-weight: 750;
  }
  #puck-content > h2:has(+ .puck-text + .puck-table-wrapper) + .puck-text + .puck-table-wrapper + .puck-button-container {
    padding: 20px 18px 2px;
    border-radius: 0 0 14px 14px;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) {
    margin-top: 2.25rem;
    padding: 20px 18px 14px;
    border-left-width: 6px;
    border-radius: 14px 14px 0 0;
    font-size: 1.55rem;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper {
    margin-bottom: 2.5rem;
    padding: 0 12px 4px;
    border-left-width: 6px;
    border-radius: 0 0 14px 14px;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper table,
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody {
    display: block;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper thead {
    display: none;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tr {
    display: block;
    padding: 13px 2px;
    border-bottom: 1px solid var(--nitop-line);
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper tbody tr:last-child {
    border-bottom: 0;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td,
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper th {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 10px;
    width: auto !important;
    padding: 5px 6px !important;
    border: 0;
    background: transparent !important;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td::before {
    color: var(--nitop-ink-soft);
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.09em;
    line-height: 1.45;
    text-transform: uppercase;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:first-child::before {
    content: 'Time';
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:nth-child(2)::before {
    content: 'Session';
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:last-child::before {
    content: 'Location';
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:first-child {
    color: var(--nitop-terracotta-dark);
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:nth-child(2) {
    color: var(--nitop-ink);
    font-size: 1rem;
  }
  #puck-content > h2:has(+ .puck-table-wrapper) + .puck-table-wrapper td:last-child {
    color: var(--nitop-teal-dark);
    font-size: 0.9rem;
  }
  .recur-contact-form,
  .recur-donation-form,
  .recur-donation,
  .puck-contact-widget { padding: 26px 18px !important; }
  .recur-donation .donation-amounts,
  .recur-donation-form .donation-amounts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .recur-donation .donation-other-btn,
  .recur-donation-form .donation-other-btn {
    grid-column: 1 / -1 !important;
  }
  .donation-amount-btn,
  .donation-other-btn {
    padding: 11px 8px !important;
    font-size: 0.9rem !important;
  }
  .puck-grid:has(.recur-contact-form) { gap: 24px; }
  .puck-grid:has(.recur-contact-form) .recur-contact-form { height: auto; }
}

/* ===== Image blocks in grids — white card frame ===== */
.puck-grid .puck-image {
  background: #ffffff;
  border-radius: 18px;
  padding: 8px 8px 0;
  box-shadow: 0 6px 28px -8px rgba(38, 34, 30, 0.20), 0 1px 4px rgba(38, 34, 30, 0.07);
  overflow: hidden;
}
.puck-grid .puck-image .puck-image-img {
  border-radius: 12px !important;
  display: block;
  width: 100%;
}
.puck-grid .puck-image .puck-image-caption {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--nitop-terracotta);
  text-align: center;
  padding: 10px 4px;
  margin: 0;
}

/* ===== Hotel gallery — equal-width image frames ===== */
/* The source photos have different aspect ratios. Give them one shared
   frame so the native three-column grid has even edges and consistent gaps. */
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) {
  gap: 24px !important;
}
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-grid-column {
  min-width: 0;
}
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image-figure {
  display: block;
  width: 100%;
  margin: 0;
}
.puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image-img {
  display: block;
  width: 100% !important;
  height: 250px !important;
  object-fit: cover !important;
}

/* ===== Home venue photo collage — "The Grand Hotel" section ===== */
/* Scoped via :has() on the pool image alt (no DOM ids on grids). */
/* Override the generic frame above — collage uses overlay gradient captions */
.puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-image {
  position: relative;
  border-radius: 18px;
  background: transparent;
  padding: 0;
  box-shadow: 0 22px 44px -22px rgba(38, 34, 30, 0.45);
}
.puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-image img {
  height: 380px !important;
  border-radius: 18px !important;
  transition: transform 0.5s ease !important;
}
.puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-image:hover img {
  transform: scale(1.06);
}
/* staggered collage rhythm on desktop: outer photos drop down */
@media (min-width: 900px) {
  .puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-grid-column:nth-child(1),
  .puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-grid-column:nth-child(3) {
    padding-top: 44px !important;
  }
}
/* overlay captions on a warm gradient scrim */
.puck-grid:has(img[alt="The Grand Hotel pool overlooking Mobile Bay"]) .puck-image-caption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  margin: 0;
  padding: 44px 18px 16px;
  text-align: left;
  color: #ffffff;
  font-family: var(--nitop-serif);
  font-size: 1.08rem;
  letter-spacing: 0.01em;
  background: linear-gradient(180deg, rgba(30, 20, 14, 0) 0%, rgba(30, 20, 14, 0.72) 100%);
  border-radius: 0 0 18px 18px;
  pointer-events: none;
}

@media (max-width: 720px) {
  .puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) {
    gap: 18px !important;
  }
  .puck-grid:has(img[alt="The Grand Hotel north beach on Mobile Bay"]) .puck-image-img {
    height: 220px !important;
  }
}

/* ===== Photo gallery — curated image grids ===== */
/* The gallery is organized as visual stories rather than one long three-column
   wall. Keep the smaller archive images compact on desktop and browseable in
   two columns on phones. */
.puck-grid:has(img[alt="NITOP 2026 — Photo 1"]),
.puck-grid:has(img[alt="Main pool at The Grand"]) {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid-column,
.puck-grid:has(img[alt="Main pool at The Grand"]) .puck-grid-column {
  min-width: 0;
}
.puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-image-img,
.puck-grid:has(img[alt="Main pool at The Grand"]) .puck-image-img {
  height: 220px !important;
  object-fit: cover !important;
}
.puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-image-caption,
.puck-grid:has(img[alt="Main pool at The Grand"]) .puck-image-caption {
  font-size: 0.76rem;
  line-height: 1.25;
  margin-top: 8px;
}

@media (max-width: 720px) {
  .puck-grid:has(img[alt="NITOP 2026 — Photo 1"]),
  .puck-grid:has(img[alt="Main pool at The Grand"]) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
  .puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-image-img,
  .puck-grid:has(img[alt="Main pool at The Grand"]) .puck-image-img {
    height: 180px !important;
  }
  .puck-grid:has(img[alt="NITOP 2026 — Photo 1"]) .puck-image-caption,
  .puck-grid:has(img[alt="Main pool at The Grand"]) .puck-image-caption {
    font-size: 0.68rem;
  }
}

/* ===== Photo Gallery — one clean frame per image =====
   The white .puck-image card already supplies the gallery's border, radius,
   and depth. Remove the generic image-level shadow so photos do not acquire
   a second dark inset outline. */
#puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid:has(.puck-image) {
  gap: 24px !important;
}
#puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid .puck-image-img,
#puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid .puck-image img {
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
#puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid .puck-image {
  border-radius: 18px;
}

@media (max-width: 720px) {
  #puck-content:has(img[alt="NITOP 2026 — Photo 1"]) .puck-grid:has(.puck-image) {
    gap: 16px !important;
  }
}

/* ===== Videos — full-width responsive YouTube players ===== */
/* The native Video component can fall back to a 300x150 iframe when its
   intrinsic dimensions win over the surrounding grid. Let each player fill
   its column and establish the intended widescreen ratio explicitly. */
.puck-grid:has(.puck-video) .puck-video {
  width: 100% !important;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
.puck-grid:has(.puck-video) .puck-video-inner {
  width: 100% !important;
}
.puck-grid:has(.puck-video) .puck-video-media {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 10px 28px -12px rgba(38, 34, 30, 0.28);
}

@media (max-width: 720px) {
  .puck-grid:has(.puck-video) {
    gap: 32px !important;
  }
}

/* ---------- Hotel & Travel booking journey ---------- */
/*
   Treat the booking instructions as one continuous route: introduce it,
   move through the three stops, then arrive at the reservation action.
*/
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) {
  max-width: var(--nitop-max);
  margin-top: 3.2rem;
  margin-bottom: 0;
  padding: 30px 24px 4px;
  box-sizing: border-box;
  border: 1px solid var(--nitop-line);
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  background: linear-gradient(135deg, #fffaf4 0%, #f7eee3 100%);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text {
  max-width: var(--nitop-max);
  padding: 0 24px 18px;
  box-sizing: border-box;
  border-left: 1px solid var(--nitop-line);
  border-right: 1px solid var(--nitop-line);
  background: linear-gradient(135deg, #fffaf4 0%, #f7eee3 100%);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid {
  position: relative;
  z-index: 0;
  max-width: var(--nitop-max);
  padding: 16px 24px 24px;
  box-sizing: border-box;
  border-left: 1px solid var(--nitop-line);
  border-right: 1px solid var(--nitop-line);
  background: linear-gradient(135deg, #fffaf4 0%, #f7eee3 100%);
  overflow: visible;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 9%;
  right: 9%;
  height: 6px;
  border-top: 2px dashed rgba(193, 80, 46, 0.55);
  border-bottom: 2px dashed rgba(226, 159, 76, 0.42);
  transform: translateY(-50%);
}
#puck-content:has(a[href*="book.passkey.com"]) > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid::after {
  content: "✈";
  position: absolute;
  z-index: 2;
  top: calc(50% - 21px);
  right: 3%;
  color: var(--nitop-terracotta);
  font-family: Georgia, serif;
  font-size: 1.8rem;
  line-height: 1;
  transform: rotate(8deg);
  text-shadow: 0 2px 0 #fffaf4;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid .puck-grid-column {
  position: relative;
  z-index: 1;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid + .puck-button-container {
  position: relative;
  z-index: 1;
  max-width: var(--nitop-max);
  margin-top: 0;
  margin-bottom: 0;
  padding: 0 24px 30px;
  box-sizing: border-box;
  border: 1px solid var(--nitop-line);
  border-top: 0;
  border-radius: 0 0 20px 20px;
  background: linear-gradient(135deg, #fffaf4 0%, #f7eee3 100%);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid + .puck-button-container .puck-button {
  box-shadow: 0 8px 18px -10px rgba(158, 63, 34, 0.7);
}

@media (max-width: 720px) {
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) {
    padding: 24px 20px 4px;
    border-radius: 16px 16px 0 0;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text {
    padding: 0 20px 16px;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid {
    padding: 12px 20px 20px 44px;
    gap: 18px !important;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid::before {
    top: 24px;
    bottom: 24px;
    left: 22px;
    right: auto;
    width: 4px;
    height: auto;
    border-top: 0;
    border-right: 2px dashed rgba(193, 80, 46, 0.55);
    border-bottom: 0;
    border-left: 2px dashed rgba(226, 159, 76, 0.42);
    transform: none;
  }
  #puck-content:has(a[href*="book.passkey.com"]) > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid::after {
    top: auto;
    right: auto;
    bottom: 0;
    left: 10px;
    font-size: 1.45rem;
    transform: rotate(90deg);
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--step) + .puck-text + .puck-grid + .puck-button-container {
    padding: 0 20px 24px;
    border-radius: 0 0 16px 16px;
  }
}

/* ---------- Sponsors & Partners community showcase ---------- */
/*
   Give the existing supporter list a distinct editorial structure: a quiet
   introduction band followed by two equal recognition profiles. The
   supporter variant keeps this treatment scoped to this page's known cards.
*/
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) {
  max-width: var(--nitop-max);
  margin: 3.2rem auto 0;
  padding: 42px 44px 0;
  box-sizing: border-box;
  border: 1px solid rgba(93, 136, 151, 0.3);
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  background: linear-gradient(120deg, var(--nitop-teal-pale) 0%, #f8f5ee 100%);
  text-align: left !important;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter)::before {
  content: "OUR COMMUNITY OF SUPPORT";
  display: block;
  margin-bottom: 12px;
  color: var(--nitop-teal-dark);
  font-family: var(--nitop-sans);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  line-height: 1.3;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter)::after {
  margin: 16px 0 0;
  background: var(--nitop-terracotta);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 10px 44px 28px;
  box-sizing: border-box;
  border-right: 1px solid rgba(93, 136, 151, 0.3);
  border-left: 1px solid rgba(93, 136, 151, 0.3);
  background: linear-gradient(120deg, var(--nitop-teal-pale) 0%, #f8f5ee 100%);
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.75;
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid {
  max-width: var(--nitop-max);
  margin: 0 auto;
  padding: 4px 44px 44px;
  box-sizing: border-box;
  border-right: 1px solid rgba(93, 136, 151, 0.3);
  border-bottom: 1px solid rgba(93, 136, 151, 0.3);
  border-left: 1px solid rgba(93, 136, 151, 0.3);
  border-radius: 0 0 22px 22px;
  background: linear-gradient(120deg, var(--nitop-teal-pale) 0%, #f8f5ee 100%);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid .puck-grid-column {
  min-width: 0;
}
.puck-card--supporter {
  position: relative;
  overflow: hidden;
  padding: 34px 30px 30px;
  border-top: 4px solid var(--nitop-terracotta);
  border-radius: 16px;
  box-shadow: 0 14px 30px -18px rgba(38, 34, 30, 0.3);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid > .puck-grid-column:nth-child(2) .puck-card--supporter {
  border-top-color: var(--nitop-teal);
}
.puck-card--supporter::after {
  content: "NITOP PARTNER";
  position: absolute;
  top: 22px;
  right: 24px;
  color: rgba(93, 136, 151, 0.52);
  font-family: var(--nitop-sans);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.puck-card--supporter .puck-card-eyebrow {
  margin-bottom: 14px;
  color: var(--nitop-terracotta);
}
#puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid > .puck-grid-column:nth-child(2) .puck-card--supporter .puck-card-eyebrow {
  color: var(--nitop-teal-dark);
}
.puck-card--supporter .puck-card-title {
  max-width: 82%;
  margin-bottom: 14px;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.22;
}
.puck-card--supporter .puck-card-description {
  font-size: 0.98rem;
  line-height: 1.7;
}

@media (max-width: 720px) {
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) {
    margin-top: 2.4rem;
    padding: 32px 24px 0;
    border-radius: 18px 18px 0 0;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter)::before {
    font-size: 0.64rem;
    letter-spacing: 0.14em;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text {
    padding: 10px 24px 22px;
    font-size: 0.98rem;
  }
  #puck-content > h2:has(+ .puck-text + .puck-grid .puck-card--supporter) + .puck-text + .puck-grid {
    padding: 4px 24px 28px;
    gap: 18px;
    border-radius: 0 0 18px 18px;
  }
  .puck-card--supporter {
    padding: 30px 24px 26px;
  }
  .puck-card--supporter::after {
    top: 20px;
    right: 18px;
    font-size: 0.52rem;
  }
  .puck-card--supporter .puck-card-title {
    max-width: 78%;
  }
}

/* ---------- BISTOPS contact callout ---------- */
/* A compact, action-led contact row is more useful here than a stretched
   notice card with a low-contrast text link. */
.puck-card--bistops-contact {
  height: auto !important;
  min-height: 0 !important;
  padding: 28px 32px;
  border: 1px solid rgba(93, 136, 151, 0.28);
  border-left: 5px solid var(--nitop-teal);
  border-radius: 16px;
  background: linear-gradient(135deg, #f1f8f8 0%, #fffaf4 100%);
  box-shadow: 0 14px 30px -18px rgba(38, 34, 30, 0.26);
}
.puck-card--bistops-contact > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "eyebrow action"
    "title action"
    "description action";
  align-items: center;
  column-gap: 30px;
}
.puck-card--bistops-contact .puck-card-eyebrow {
  grid-area: eyebrow;
  margin-bottom: 8px;
  color: var(--nitop-teal-dark);
}
.puck-card--bistops-contact .puck-card-title {
  grid-area: title;
  margin-bottom: 6px;
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
}
.puck-card--bistops-contact .puck-card-description {
  grid-area: description;
  color: var(--nitop-ink-soft);
  font-family: var(--nitop-sans);
  font-size: 0.98rem;
  line-height: 1.5;
}
.puck-card--bistops-contact > div > div {
  grid-area: action;
  align-self: center;
}
.puck-card--bistops-contact .puck-card-button {
  margin: 0;
  padding: 12px 24px;
  background: var(--nitop-terracotta);
  color: #ffffff;
  font-weight: 700;
  white-space: nowrap;
}
.puck-card--bistops-contact .puck-card-button:hover {
  background: var(--nitop-terracotta-dark);
  color: #ffffff;
}

@media (max-width: 720px) {
  .puck-card--bistops-contact {
    padding: 26px 22px 24px;
  }
  .puck-card--bistops-contact > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  .puck-card--bistops-contact .puck-card-eyebrow {
    margin-bottom: 8px;
  }
  .puck-card--bistops-contact .puck-card-title {
    margin-bottom: 6px;
  }
  .puck-card--bistops-contact .puck-card-description {
    margin-bottom: 18px;
  }
  .puck-card--bistops-contact > div > div {
    align-self: flex-start;
  }
}

/* ---------- NITOP History chapter rail ---------- */
/*
   The historical record stays complete and in order, but each source section
   becomes a readable chapter on one continuous rail. This avoids both the
   wall-of-text effect and a repeated card for every paragraph.
*/
#puck-content:has(.puck-card--history-chapter) {
  counter-reset: history-chapter;
}
#puck-content .puck-grid:has(.puck-card--history-chapter) {
  max-width: var(--nitop-max);
  padding: 0 24px 48px 52px;
  box-sizing: border-box;
  gap: 0 !important;
}
#puck-content .puck-grid:has(.puck-card--history-chapter) > .puck-grid-column {
  position: relative;
  min-width: 0;
  padding-left: 56px;
  border-left: 2px solid var(--nitop-line);
}
.puck-grid-column > .puck-card--history-chapter {
  position: relative;
  counter-increment: history-chapter;
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0;
  padding: 34px 0 44px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--nitop-line);
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}
.puck-card--history-chapter::before {
  content: counter(history-chapter, decimal-leading-zero);
  position: absolute;
  top: 30px;
  left: -82px;
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 5px solid var(--nitop-cream);
  border-radius: 50%;
  background: var(--nitop-terracotta);
  color: #ffffff;
  font-family: var(--nitop-sans);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  box-shadow: 0 3px 12px -6px rgba(38, 34, 30, 0.45);
}
.puck-card--history-chapter:nth-child(even)::before {
  background: var(--nitop-teal-dark);
}
.puck-card--history-chapter:last-child {
  border-bottom: 0;
}
.puck-card--history-chapter:hover {
  transform: none;
  box-shadow: none;
}
.puck-card--history-chapter .puck-card-title {
  max-width: 820px;
  margin-bottom: 18px;
  color: var(--nitop-ink);
  font-size: clamp(1.35rem, 2.3vw, 1.78rem);
  line-height: 1.22;
}
.puck-card--history-chapter .puck-card-description {
  max-width: 820px;
  color: var(--nitop-ink-soft);
  font-size: 1rem;
  line-height: 1.82;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

@media (max-width: 720px) {
  #puck-content .puck-grid:has(.puck-card--history-chapter) {
    padding: 0 24px 32px 42px;
  }
  #puck-content .puck-grid:has(.puck-card--history-chapter) > .puck-grid-column {
    padding-left: 38px;
  }
  .puck-card--history-chapter {
    padding: 28px 0 34px;
  }
  .puck-card--history-chapter::before {
    top: 24px;
    left: -65px;
    width: 44px;
    height: 44px;
    border-width: 4px;
    font-size: 0.64rem;
  }
  .puck-card--history-chapter .puck-card-title {
    margin-bottom: 14px;
    font-size: 1.3rem;
  }
  .puck-card--history-chapter .puck-card-description {
    font-size: 0.96rem;
    line-height: 1.75;
  }
}

/* ---------- Past NITOPs: year-by-year editorial identities ---------- */
/*
   Each yearly archive keeps the same usable information architecture while
   one verified archive section becomes that edition's visual signature.
   The signature also scopes year-specific hero and accent treatments.
*/
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stats {
  margin-top: 12px;
  padding: 34px 34px 38px;
  border: 1px solid var(--nitop-line);
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(246, 238, 228, 0.92));
  box-shadow: 0 18px 40px -32px rgba(38, 34, 30, 0.42);
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stats-title {
  margin-bottom: 24px;
  font-size: clamp(1.55rem, 2.8vw, 2rem);
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stat-card {
  position: relative;
  overflow: hidden;
  padding: 26px 20px;
  border-radius: 15px;
  box-shadow: none;
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stat-card:nth-child(1) {
  border-top: 4px solid var(--nitop-terracotta);
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stat-card:nth-child(2) {
  border-top: 4px solid var(--nitop-teal);
}
#puck-content:has([class*="puck-card--archive-feature-"]) .puck-stat-card:nth-child(3) {
  border-top: 4px solid var(--nitop-amber);
}

.puck-grid-column > [class*="puck-card--archive-feature-"] {
  position: relative;
  flex: 0 0 auto !important;
  min-height: 230px !important;
  height: auto !important;
  overflow: hidden !important;
  padding: 42px 44px;
  border: 0;
  border-radius: 22px;
  box-shadow: 0 24px 48px -30px rgba(38, 34, 30, 0.7);
}
.puck-grid-column > [class*="puck-card--archive-feature-"] > div {
  position: relative;
  z-index: 1;
  max-width: 790px;
}
.puck-grid-column > [class*="puck-card--archive-feature-"]::after {
  position: absolute;
  right: 24px;
  top: -34px;
  z-index: 0;
  color: rgba(255, 255, 255, 0.09);
  font-family: var(--nitop-serif);
  font-size: clamp(6.5rem, 14vw, 11rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.06em;
  pointer-events: none;
}
.puck-grid-column > [class*="puck-card--archive-feature-"]:hover {
  transform: none;
  box-shadow: 0 24px 48px -30px rgba(38, 34, 30, 0.7);
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-eyebrow {
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0.15em;
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-title {
  max-width: 680px;
  margin-bottom: 16px;
  color: #ffffff;
  font-size: clamp(1.65rem, 3.4vw, 2.45rem);
  line-height: 1.12;
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-description {
  max-width: 740px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.02rem;
  line-height: 1.78;
  white-space: pre-line;
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-button {
  margin-top: 22px;
  background: #ffffff;
  color: var(--nitop-ink);
  box-shadow: 0 10px 24px -16px rgba(0, 0, 0, 0.6);
}
.puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-button:hover {
  background: var(--nitop-amber-pale);
  color: var(--nitop-terracotta-dark);
}

.puck-card--archive-feature-2026 {
  background: linear-gradient(135deg, #8f3925 0%, var(--nitop-terracotta) 55%, #d2873d 100%);
}
.puck-card--archive-feature-2026::after { content: "2026"; }
.puck-card--archive-feature-2025 {
  background: linear-gradient(135deg, #294e58 0%, var(--nitop-teal-dark) 52%, #6d8990 100%);
}
.puck-card--archive-feature-2025::after { content: "2025"; }
.puck-card--archive-feature-2024 {
  background: linear-gradient(135deg, #3e3027 0%, #76503b 52%, #c57d38 100%);
}
.puck-card--archive-feature-2024::after { content: "2024"; }
.puck-card--archive-feature-2023 {
  background: linear-gradient(135deg, #253b42 0%, #416c73 50%, #b45438 100%);
}
.puck-card--archive-feature-2023::after { content: "2023"; }
.puck-card--archive-feature-2022 {
  background: linear-gradient(135deg, #7f3729 0%, #b85d37 48%, #d79a43 100%);
}
.puck-card--archive-feature-2022::after { content: "2022"; }
.puck-card--archive-feature-2021 {
  background:
    radial-gradient(circle at 18% 20%, rgba(158, 206, 216, 0.24) 0 2px, transparent 3px) 0 0 / 24px 24px,
    linear-gradient(135deg, #172d36 0%, #315c68 58%, #744a3b 100%);
}
.puck-card--archive-feature-2021::after { content: "2021"; }
.puck-card--archive-feature-2020 {
  background: linear-gradient(110deg, #25211e 0%, #25211e 34%, #75402e 34%, #a4492f 72%, #d07935 100%);
}
.puck-card--archive-feature-2020::after { content: "2020"; }
.puck-card--archive-feature-2019 {
  background: linear-gradient(135deg, #332a23 0%, #625344 52%, #93613e 100%);
}
.puck-card--archive-feature-2019::after { content: "2019"; }
.puck-card--archive-feature-2018 {
  background:
    linear-gradient(135deg, rgba(44, 36, 30, 0.96), rgba(105, 74, 48, 0.96)),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 5px);
}
.puck-card--archive-feature-2018::after { content: "2018"; }

#puck-content:has(.puck-card--archive-feature-2026) .puck-hero--minimal {
  background: linear-gradient(140deg, #253238 0%, #78412f 48%, #c1502e 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2025) .puck-hero--minimal {
  background: linear-gradient(140deg, #1f343a 0%, #365f68 54%, #9a5038 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2024) .puck-hero--minimal {
  background: linear-gradient(140deg, #2d2722 0%, #654934 55%, #b66f32 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2023) .puck-hero--minimal {
  background: linear-gradient(140deg, #203238 0%, #3f666c 52%, #a94d35 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2022) .puck-hero--minimal {
  background: linear-gradient(140deg, #27383b 0%, #536e69 50%, #b35b35 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2021) .puck-hero--minimal {
  background:
    radial-gradient(circle at 20% 30%, rgba(160, 213, 224, 0.16), transparent 30%),
    linear-gradient(140deg, #152a32 0%, #315662 58%, #704334 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2020) .puck-hero--minimal {
  background: linear-gradient(110deg, #231f1c 0%, #231f1c 42%, #6c3929 42%, #be512f 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2019) .puck-hero--minimal {
  background: linear-gradient(140deg, #2c261f 0%, #55483b 54%, #8b5839 100%) !important;
}
#puck-content:has(.puck-card--archive-feature-2018) .puck-hero--minimal {
  background: linear-gradient(140deg, #241f1b 0%, #483a2e 55%, #8d603e 100%) !important;
}

#puck-content:has(.puck-card--archive-feature-2025) .puck-card--archive-resource,
#puck-content:has(.puck-card--archive-feature-2021) .puck-card--archive-resource {
  border-top-color: var(--nitop-teal);
}
#puck-content:has(.puck-card--archive-feature-2022) .puck-card--archive-resource,
#puck-content:has(.puck-card--archive-feature-2024) .puck-card--archive-resource {
  border-top-color: var(--nitop-terracotta);
}

@media (max-width: 720px) {
  #puck-content:has([class*="puck-card--archive-feature-"]) .puck-stats {
    padding: 28px 18px 30px;
    border-radius: 18px;
  }
  .puck-grid-column > [class*="puck-card--archive-feature-"] {
    min-height: 0 !important;
    padding: 32px 24px 34px;
    border-radius: 18px;
  }
  .puck-grid-column > [class*="puck-card--archive-feature-"]::after {
    right: 14px;
    top: -12px;
    font-size: 5.4rem;
  }
  .puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-title {
    max-width: 85%;
    font-size: 1.55rem;
  }
  .puck-grid-column > [class*="puck-card--archive-feature-"] .puck-card-description {
    font-size: 0.96rem;
    line-height: 1.7;
  }
}


            /* PROTECTED footer bottom bar + Recur attribution (Task: protect
               bottom-bar styling from custom CSS). Emitted AFTER the tenant's
               custom CSS and with !important on every declaration so no
               custom CSS can restyle, shrink, hide, or recolor the bottom bar
               or the "Built by"/"Powered by" badge. Emitted in FULL for all
               site modes, including designer-owned (advanced custom-CSS). */
            /* Render class contract v1.9.0 — PROTECTED footer bottom bar + Recur attribution (emitted after custom CSS; not overridable). */
.site-footer .footer-bottom-bar {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.5rem !important;
  margin-top: 1rem !important;
  border-top: 1px solid var(--color-border, #ddd) !important;
  padding: 0.5rem 0 0 !important;
  font-size: 0.6875rem !important;
  color: inherit !important;
  position: static !important;
  transform: none !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
.site-footer .footer-bottom-bar .footer-bottom-bar-link {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  align-items: center !important;
  gap: 0.375rem !important;
  color: #4d4d4d !important;
  background: #ffffff !important;
  border-radius: 3px !important;
  padding: 2px 8px !important;
  text-decoration: none !important;
  font-size: 0.6875rem !important;
  position: static !important;
  transform: none !important;
  filter: none !important;
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  overflow: visible !important;
  clip-path: none !important;
  transition: opacity 0.2s !important;
}
.site-footer .footer-bottom-bar .footer-bottom-bar-link svg {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: 25px !important;
  width: auto !important;
  vertical-align: middle !important;
}
.site-footer .footer-bottom-bar .footer-bottom-bar-link:hover {
  opacity: 0.8 !important;
}
          