/* Pottery class schedule — shared by the website section and the printed PDF. */
.ff-schedule {
  --ff-ink: #201F21;
  --ff-muted: #5E5955;
  --ff-clay: #B66751;
  --ff-rust: #9F3C33;
  --ff-rust-dark: #8B3008;
  --ff-green: #0A8C66;
  --ff-cream: #FBF7F2;
  --ff-sand: #F4EEE7;
  --ff-line: #E4DDD5;
  --c-s1: #9FE1CB;
  --c-s2: #CECBF6;
  --c-off: #FFE699;
  --c-stat: #F4B183;
  --c-break: #F2C4C4;
  --c-prod: #C5E0B4;
  --c-admin: #BDD7EE;
  --c-early: #FFFFFF;
  --c-wknd: #EFEDEA;
  background: var(--ff-cream);
  color: var(--ff-ink);
  padding: clamp(48px, 7vw, 96px) 5%;
  font-family: "League Spartan", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1.05rem;
  line-height: 1.5;
}
.ff-schedule *, .ff-schedule *::before, .ff-schedule *::after { box-sizing: border-box; }
.ff-schedule .ff-sch-inner { max-width: 1180px; margin: 0 auto; }
.ff-schedule p { margin: 0 0 1em; }
.ff-schedule a { color: var(--ff-rust); }

.ff-schedule .ff-eyebrow {
  margin: 0; color: var(--ff-clay); font-weight: 600; font-size: .85rem;
  letter-spacing: .14em; text-transform: uppercase;
}
.ff-schedule .ff-sch-title,
.ff-schedule .ff-h3,
.ff-schedule .ff-season > summary,
.ff-schedule .ff-card h5 {
  font-family: "freight-big-pro", Georgia, "Times New Roman", serif;
  color: var(--ff-ink);
}
.ff-schedule .ff-sch-title {
  font-size: clamp(2.3rem, 5vw, 3.5rem); font-weight: 600; line-height: 1.05; margin: .15em 0 .35em;
}
.ff-schedule .ff-lead { max-width: 64ch; font-size: 1.12rem; color: var(--ff-muted); }
.ff-schedule .ff-small { font-size: .92rem; color: var(--ff-muted); margin-top: .8em; }

.ff-schedule .ff-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1em 2em; margin-top: 1.6em; }
.ff-schedule .ff-btn {
  display: inline-flex; align-items: center; gap: .55em;
  background: var(--ff-rust); color: #fff; text-decoration: none;
  padding: .85em 1.5em; border-radius: 999px; font-weight: 600; font-size: 1rem; line-height: 1;
  box-shadow: 0 6px 18px rgba(159, 60, 51, .25); transition: background .2s, transform .2s;
}
.ff-schedule .ff-btn:hover { background: var(--ff-rust-dark); color: #fff; transform: translateY(-1px); }
.ff-schedule .ff-btn:focus-visible,
.ff-schedule a:focus-visible,
.ff-schedule summary:focus-visible,
.ff-schedule .ff-scroll:focus-visible { outline: 3px solid var(--ff-green); outline-offset: 3px; }
.ff-schedule .ff-jump { display: flex; flex-wrap: wrap; gap: .4em 1.3em; font-size: .95rem; }
.ff-schedule .ff-jump a { color: var(--ff-ink); text-underline-offset: .25em; text-decoration-color: var(--ff-clay); }

.ff-schedule .ff-h3 {
  font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 600; line-height: 1.1;
  margin: 2.2em 0 .7em; padding-top: 1em; border-top: 1px solid var(--ff-line);
  scroll-margin-top: 90px;
}

/* Tables — overrides the Hello theme's default table striping and borders */
.ff-schedule .ff-scroll {
  overflow-x: auto; border: 1px solid var(--ff-line); border-radius: 14px; background: #fff;
  -webkit-overflow-scrolling: touch;
}
.ff-schedule table { margin: 0; border-spacing: 0; }
.ff-schedule table th, .ff-schedule table td { border: 0; line-height: 1.35; }
.ff-schedule .ff-table { width: 100%; border-collapse: separate; font-size: .95rem; }
.ff-schedule .ff-table tr > * {
  background: #fff; padding: .75em .9em; text-align: left; vertical-align: top;
  border-bottom: 1px solid var(--ff-line);
}
.ff-schedule .ff-table tbody tr:last-child > * { border-bottom: 0; }
.ff-schedule .ff-table thead tr > * { background: var(--ff-sand); font-weight: 600; white-space: nowrap; }
.ff-schedule .ff-glance { min-width: 900px; }
.ff-schedule .ff-glance tbody th {
  position: sticky; left: 0; z-index: 1; min-width: 190px; box-shadow: 1px 0 0 var(--ff-line);
}
.ff-schedule .ff-glance thead th:first-child { position: sticky; left: 0; z-index: 2; }
.ff-schedule .ff-cls { display: block; font-weight: 600; }
.ff-schedule .ff-when, .ff-schedule .ff-count { display: block; color: var(--ff-muted); font-size: .86em; }
.ff-schedule .ff-dates { display: block; white-space: nowrap; }
.ff-schedule .ff-dot {
  display: inline-block; width: .7em; height: .7em; border-radius: 50%;
  margin-right: .45em; vertical-align: .05em; border: 1px solid rgba(0, 0, 0, .12);
}
.ff-schedule .ff-dot.s1 { background: var(--c-s1); }
.ff-schedule .ff-dot.s2 { background: var(--c-s2); }
.ff-schedule .ff-scroll-hint { display: none; font-size: .85rem; color: var(--ff-muted); margin: .5em 0 0; }

/* Season accordions */
.ff-schedule .ff-season { border: 1px solid var(--ff-line); border-radius: 16px; background: #fff; margin: 0 0 1em; }
.ff-schedule .ff-season > summary {
  display: flex; justify-content: space-between; align-items: center; gap: 1em;
  cursor: pointer; list-style: none; padding: 1.1em 1.4em; font-size: 1.6rem; font-weight: 600; line-height: 1.1;
}
.ff-schedule .ff-season > summary::-webkit-details-marker { display: none; }
.ff-schedule .ff-season > summary small {
  display: block; margin-top: .3em; font-family: "League Spartan", system-ui, sans-serif;
  font-size: .95rem; font-weight: 400; color: var(--ff-muted);
}
.ff-schedule .ff-season > summary::after {
  content: "+"; flex: none; display: grid; place-items: center; width: 1.6em; height: 1.6em;
  border-radius: 50%; background: var(--ff-sand); color: var(--ff-rust);
  font-family: "League Spartan", system-ui, sans-serif; font-size: 1.2rem; font-weight: 600;
}
.ff-schedule .ff-season[open] > summary::after { content: "–"; }
.ff-schedule .ff-season-body { padding: 0 1.4em 1.4em; }
.ff-schedule .ff-session { font-size: 1.05rem; font-weight: 600; margin: 1.2em 0 .7em; letter-spacing: .02em; }
.ff-schedule .ff-session:first-child { margin-top: .2em; }

/* Class cards */
.ff-schedule .ff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(245px, 1fr)); gap: 1em; }
.ff-schedule .ff-card {
  --kind: #B66751; --kind-ink: #8B3008;
  display: flex; flex-direction: column; gap: .45em;
  background: var(--ff-cream); border: 1px solid var(--ff-line); border-top: 5px solid var(--kind);
  border-radius: 14px; padding: 1em 1.15em 1.1em;
}
.ff-schedule .ff-card.ff-kids { --kind: #61A993; --kind-ink: #2E6E5B; }
.ff-schedule .ff-card.ff-club { --kind: #0A8C66; --kind-ink: #07664A; }
.ff-schedule .ff-card p { margin: 0; }
.ff-schedule .ff-card-when {
  color: var(--kind-ink); font-weight: 600; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase;
}
.ff-schedule .ff-card h5 { font-size: 1.4rem; font-weight: 600; line-height: 1.1; margin: 0; }
.ff-schedule .ff-tag { color: var(--ff-muted); font-size: .92rem; }
.ff-schedule .ff-dl { display: grid; gap: .2em; margin: .2em 0 0; font-size: .95rem; }
.ff-schedule .ff-dl div { display: grid; grid-template-columns: 5.5em 1fr; gap: .6em; }
.ff-schedule .ff-dl dt { color: var(--ff-muted); font-weight: 400; margin: 0; }
.ff-schedule .ff-dl dd { margin: 0; }
.ff-schedule .ff-note {
  align-self: flex-start; background: #FFF3C4; border-radius: 999px; padding: .2em .75em; font-size: .85rem;
}
.ff-schedule .ff-price { margin-top: auto; padding-top: .7em; border-top: 1px dashed var(--ff-line); }
.ff-schedule .ff-price-label { font-size: .8rem !important; color: var(--ff-muted); margin-bottom: .3em !important; }
.ff-schedule .ff-price ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4em; list-style: none; margin: 0; padding: 0; }
.ff-schedule .ff-price li { display: flex; flex-direction: column; background: #fff; border-radius: 8px; padding: .35em .5em; }
.ff-schedule .ff-price li span { font-size: .75rem; color: var(--ff-muted); }
.ff-schedule .ff-price b { font-size: 1.1rem; }
.ff-schedule .ff-free b { font-size: 1.05rem; color: var(--kind-ink); }
.ff-schedule .ff-callout {
  max-width: 72ch; margin: 1.4em 0 0 auto; padding: .9em 1.2em; break-inside: avoid;
  background: #fff; border: 1px solid var(--ff-line); border-left: 4px solid var(--ff-clay); border-radius: 10px;
  color: var(--ff-muted); font-size: .98rem;
}
.ff-schedule .ff-callout strong { color: var(--ff-ink); }

/* Holidays */
.ff-schedule .ff-holidays { min-width: 640px; }
.ff-schedule .ff-hdate { white-space: nowrap; font-weight: 600; }
.ff-schedule .ff-swatch {
  display: inline-block; width: .8em; height: .8em; border-radius: 3px; margin-right: .55em;
  vertical-align: -.05em; border: 1px solid rgba(0, 0, 0, .15);
}

/* Calendar */
.ff-schedule .c-s1 { background: var(--c-s1); }
.ff-schedule .c-s2 { background: var(--c-s2); }
.ff-schedule .c-off { background: var(--c-off); }
.ff-schedule .c-stat { background: var(--c-stat); }
.ff-schedule .c-break { background: var(--c-break); }
.ff-schedule .c-prod { background: var(--c-prod); }
.ff-schedule .c-admin { background: var(--c-admin); }
.ff-schedule .c-early { background: var(--c-early); }
.ff-schedule .c-wknd { background: var(--c-wknd); }
.ff-schedule .ff-legend { display: flex; flex-wrap: wrap; gap: .5em 1.3em; list-style: none; margin: 0 0 1.2em; padding: 0; font-size: .92rem; }
.ff-schedule .ff-legend i {
  display: inline-block; width: 1em; height: 1em; border-radius: 4px; margin-right: .45em;
  vertical-align: -.15em; border: 1px solid rgba(0, 0, 0, .12);
}
.ff-schedule .ff-months { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.1em; }
.ff-schedule .ff-month { margin: 0; background: #fff; border: 1px solid var(--ff-line); border-radius: 14px; padding: .8em .7em .6em; }
.ff-schedule .ff-month figcaption {
  text-align: center; font-weight: 600; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--ff-rust); margin-bottom: .4em;
}
.ff-schedule .ff-month table { width: 100%; border-collapse: separate; border-spacing: 3px; table-layout: fixed; font-size: inherit; }
.ff-schedule .ff-month tr > * { background: transparent; padding: 0; text-align: center; }
.ff-schedule .ff-month th { font-size: .72rem; font-weight: 600; color: var(--ff-muted); padding-bottom: .15em; }
.ff-schedule .ff-month td { height: 2.15em; font-size: .82rem; border-radius: 6px; vertical-align: middle; line-height: 1; }
.ff-schedule .ff-month td.c-s1 { background: var(--c-s1); }
.ff-schedule .ff-month td.c-s2 { background: var(--c-s2); }
.ff-schedule .ff-month td.c-off { background: var(--c-off); }
.ff-schedule .ff-month td.c-stat { background: var(--c-stat); }
.ff-schedule .ff-month td.c-break { background: var(--c-break); }
.ff-schedule .ff-month td.c-prod { background: var(--c-prod); }
.ff-schedule .ff-month td.c-admin { background: var(--c-admin); }
.ff-schedule .ff-month td.c-wknd { background: var(--c-wknd); color: var(--ff-muted); }
.ff-schedule .ff-month td small { display: block; font-size: .56rem; text-transform: uppercase; letter-spacing: .04em; margin-top: 1px; }

@media (max-width: 900px) {
  .ff-schedule .ff-scroll-hint { display: block; }
}
@media (max-width: 600px) {
  .ff-schedule { padding: 44px 18px; font-size: 1rem; }
  .ff-schedule .ff-season > summary { padding: 1em 1.1em; font-size: 1.35rem; }
  .ff-schedule .ff-season-body { padding: 0 1em 1em; }
  .ff-schedule .ff-actions { gap: 1em; }
  .ff-schedule .ff-btn { width: 100%; justify-content: center; }
}

/* ---- PDF / print ---- */
@page { size: letter; margin: .45in .5in; }
.ff-print { margin: 0; background: #fff; }
.ff-print, .ff-print * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ff-print .ff-print-head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1em;
  font-family: "League Spartan", system-ui, sans-serif; font-size: 9pt; color: #5E5955;
  border-bottom: 2px solid #9F3C33; padding-bottom: 6pt; margin-bottom: 12pt;
}
.ff-print .ff-print-head strong { font-family: "freight-big-pro", Georgia, serif; font-size: 14pt; color: #201F21; }
.ff-print .ff-schedule { background: #fff; padding: 0; font-size: 9.5pt; }
.ff-print .ff-sch-title { font-size: 26pt; }
.ff-print .ff-lead { font-size: 10pt; max-width: none; }
.ff-print .ff-h3 { font-size: 16pt; margin: 14pt 0 8pt; padding-top: 0; border-top: 0; }
.ff-print .ff-pb { break-before: page; }
.ff-print .ff-scroll { overflow: visible; border-radius: 8px; }
.ff-print .ff-glance, .ff-print .ff-holidays { min-width: 0; font-size: 8.5pt; }
.ff-print .ff-table tr > * { padding: 5pt 6pt; }
.ff-print .ff-glance tbody th { position: static; min-width: 0; }
.ff-print .ff-scroll-hint, .ff-print .ff-season > summary::after { display: none; }
.ff-print .ff-season { border: 0; margin: 0; break-inside: auto; }
.ff-print .ff-season > summary { padding: 6pt 0 2pt; font-size: 14pt; }
.ff-print .ff-season-body { padding: 0; }
.ff-print .ff-session { font-size: 10.5pt; margin: 8pt 0 5pt; break-after: avoid; }
.ff-print .ff-grid { grid-template-columns: repeat(4, 1fr); gap: 6pt; }
.ff-print .ff-card { padding: 6pt 7pt; border-radius: 8px; gap: 2pt; break-inside: avoid; border-top-width: 3px; }
.ff-print .ff-card h5 { font-size: 11.5pt; }
.ff-print .ff-card-when { font-size: 6.5pt; }
.ff-print .ff-tag, .ff-print .ff-dl { font-size: 8pt; }
.ff-print .ff-dl div { grid-template-columns: 4.2em 1fr; gap: 3pt; }
.ff-print .ff-note { font-size: 7pt; }
.ff-print .ff-price ul { gap: 2pt; }
.ff-print .ff-price li { padding: 2pt 3pt; }
.ff-print .ff-price li span { font-size: 6pt; }
.ff-print .ff-price b { font-size: 9pt; }
.ff-print .ff-price-label { font-size: 6.5pt !important; }
.ff-print #ff-holidays { break-before: auto; margin-top: 18pt; }
.ff-print .ff-months { grid-template-columns: repeat(4, 1fr); gap: 7pt; }
.ff-print .ff-month { break-inside: avoid; padding: 5pt 4pt; border-radius: 8px; }
.ff-print .ff-month figcaption { font-size: 7.5pt; }
.ff-print .ff-month td { height: 1.6em; font-size: 7pt; }
.ff-print .ff-legend { font-size: 8pt; margin-bottom: 8pt; }
.ff-print tr { break-inside: avoid; }
