
            /* @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.3rem); margin: 2.5rem auto 0.75rem; }
.puck-heading h2 { font-size: clamp(1.7rem, 3.2vw, 2.35rem); margin: 2rem auto 0.5rem; }
/* 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.25rem, 2.2vw, 1.55rem); margin: 2rem auto 0.4rem; color: var(--nitop-terracotta-dark); }

.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); }

/* 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.9rem, 3.4vw, 2.5rem);
  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, 3vw, 2.25rem);
  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;
}

/* 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;
}
.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-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);
}
.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;
}

.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-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;
}

.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: var(--nitop-sand);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-amber);
  padding-top: 36px;
}
/* decorative avatar circle — renderer does not expose image props at runtime */
.puck-card--person::before {
  content: "";
  display: block;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--nitop-terracotta) 0%, var(--nitop-terracotta-dark) 100%);
  margin: 0 auto 18px;
  box-shadow: 0 6px 20px -6px rgba(193, 80, 46, 0.4);
}
.puck-card--person .puck-card-title { font-size: 1.18rem; color: var(--nitop-ink); }
.puck-card--person .puck-card-eyebrow { color: var(--nitop-terracotta-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: 560px !important;
  min-height: 560px !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: 11.55em;
  max-height: 11.55em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 7;
}
.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: absolute;
  left: 28px;
  bottom: 28px;
  margin-top: 0;
  align-self: 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); }
.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;
}

/* 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: 560px !important;
    min-height: 560px !important;
  }
  .puck-card--speaker .puck-card-button,
  .puck-card--speaker-workshop .puck-card-button {
    left: 20px;
    bottom: 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 cards must keep one size instead of inheriting variable grid-row heights */
.puck-grid-column > .puck-card--speaker,
.puck-grid-column > .puck-card--speaker-workshop {
  flex: 0 0 560px !important;
  height: 560px !important;
  min-height: 560px !important;
  overflow: visible !important;
}

/* 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 {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !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 button[type="submit"],
.recur-donation .donation-submit,
.recur-donation .donation-continue,
.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 button[type="submit"]:hover {
  background: var(--nitop-terracotta-dark) !important;
  transform: translateY(-1px) !important;
}
.recur-donation-form button:disabled,
.recur-donation button: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 {
  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 {
  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"] {
  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 {
  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: 1 / -1 !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;
}

/* 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 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: start;
  gap: 32px;
}
.puck-grid:has(.puck-contact-widget) > .puck-grid-column {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.puck-grid:has(.puck-contact-widget) .puck-contact-widget {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
.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;
}

/* Contact quick links */
.puck-card--session .puck-card-button {
  margin-top: 18px;
}

@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-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; }
  .donation-amount-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;
  }
}

/* ===== 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;
  }
}



            /* 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.3rem); margin: 2.5rem auto 0.75rem; }
.puck-heading h2 { font-size: clamp(1.7rem, 3.2vw, 2.35rem); margin: 2rem auto 0.5rem; }
/* 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.25rem, 2.2vw, 1.55rem); margin: 2rem auto 0.4rem; color: var(--nitop-terracotta-dark); }

.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); }

/* 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.9rem, 3.4vw, 2.5rem);
  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, 3vw, 2.25rem);
  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;
}

/* 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;
}
.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-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);
}
.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;
}

.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-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;
}

.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: var(--nitop-sand);
  border: 1px solid var(--nitop-line);
  border-top: 4px solid var(--nitop-amber);
  padding-top: 36px;
}
/* decorative avatar circle — renderer does not expose image props at runtime */
.puck-card--person::before {
  content: "";
  display: block;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--nitop-terracotta) 0%, var(--nitop-terracotta-dark) 100%);
  margin: 0 auto 18px;
  box-shadow: 0 6px 20px -6px rgba(193, 80, 46, 0.4);
}
.puck-card--person .puck-card-title { font-size: 1.18rem; color: var(--nitop-ink); }
.puck-card--person .puck-card-eyebrow { color: var(--nitop-terracotta-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: 560px !important;
  min-height: 560px !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: 11.55em;
  max-height: 11.55em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 7;
}
.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: absolute;
  left: 28px;
  bottom: 28px;
  margin-top: 0;
  align-self: 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); }
.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;
}

/* 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: 560px !important;
    min-height: 560px !important;
  }
  .puck-card--speaker .puck-card-button,
  .puck-card--speaker-workshop .puck-card-button {
    left: 20px;
    bottom: 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 cards must keep one size instead of inheriting variable grid-row heights */
.puck-grid-column > .puck-card--speaker,
.puck-grid-column > .puck-card--speaker-workshop {
  flex: 0 0 560px !important;
  height: 560px !important;
  min-height: 560px !important;
  overflow: visible !important;
}

/* 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 {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !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 button[type="submit"],
.recur-donation .donation-submit,
.recur-donation .donation-continue,
.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 button[type="submit"]:hover {
  background: var(--nitop-terracotta-dark) !important;
  transform: translateY(-1px) !important;
}
.recur-donation-form button:disabled,
.recur-donation button: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 {
  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 {
  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"] {
  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 {
  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: 1 / -1 !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;
}

/* 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 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: start;
  gap: 32px;
}
.puck-grid:has(.puck-contact-widget) > .puck-grid-column {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.puck-grid:has(.puck-contact-widget) .puck-contact-widget {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
.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;
}

/* Contact quick links */
.puck-card--session .puck-card-button {
  margin-top: 18px;
}

@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-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; }
  .donation-amount-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;
  }
}

/* ===== 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;
  }
}


            /* 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;
}
          