/* ===================================================================
   StrikePoint Laser Tag — occasion pages (/birthday-parties/,
   /mobile-party-entertainment/, /kids-birthday-party-ideas/).
   Loads after /pages.css, /attractions/attractions.css, /landing.css,
   /site-chrome.css and /services.css, which supply the hero, step cards,
   planning facts, offer cards, comparison table, FAQ and CTA components.
   This file only adds the pieces those pages need on top.
   =================================================================== */

.occ a:not(.waiver-cta):not(.btn-primary):focus-visible { outline: 3px solid var(--blue-glow); outline-offset: 2px; }
.occ .legal-content > .svc-section > ul:not(.lp-offers):not(.lp-cities):not(.svc-events):not(.lp-feature-list):not(.cmp-cards),
.occ .legal-content > .svc-section > ol:not(.svc-steps) { max-width: 880px; }

/* Group headings inside a section (Battle Experiences, Interactive …). */
.legal-content .occ-group-title {
  margin: 30px 0 4px; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 20px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink);
  display: flex; align-items: center; gap: 10px;
}
.legal-content .occ-group-title::before { content: ""; width: 4px; height: 18px; background: var(--red); }
.legal-content .occ-group-title + p { margin-bottom: 0; }
.occ-cards .lp-offer img { aspect-ratio: 3 / 2; object-fit: cover; }
.legal-content .occ-cards .lp-offer h3 { font-size: 19px; }
.legal-content .occ-card-note { margin: -4px 0 12px; color: var(--ink-mute); font-size: 13px; }
/* Four battle cards in one row, two "additional" cards side by side. */
@media (min-width: 1101px) {
  .occ-cards--battle { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .legal-content .occ-cards--battle .lp-offer h3 { font-size: 17px; }
}
@media (min-width: 641px) {
  .occ-cards--additional { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Comparison table: six columns instead of the Attractions page's seven. */
.legal-content .cmp-cards > li { margin: 0; padding: 20px 18px; }
.legal-content .cmp-cards > li::before { content: none; }
.legal-content .cmp-card-facts dd { font-size: 15px; }
.occ-cmp-table thead th:first-child { width: 21%; }
.occ-cmp-table thead th:nth-child(2) { width: 13%; }
.occ-cmp-table thead th:nth-child(3) { width: 13%; }
.occ-cmp-table thead th:nth-child(4) { width: auto; }
.occ-cmp-table thead th:nth-child(5) { width: 19%; }
.occ-cmp-table thead th:last-child { width: 150px; }
.legal-content .occ-cmp-link { color: #fff; text-decoration: none; }
.legal-content .occ-cmp-link:hover { color: #fff; text-decoration: none; }
.occ-cmp-note { margin-top: 14px; }

/* Price summary. */
.legal-content .occ-price-heading {
  margin: 26px 0 0; font-family: 'Oswald', sans-serif; font-size: 19px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink);
}
.legal-content .occ-price-heading span {
  margin-left: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.12em; color: var(--amber);
}
.legal-content .local-prices li { margin: 0; padding: 14px 16px; }
.legal-content .local-prices li::before { content: none; }
.legal-content .local-prices strong a { color: var(--ink); }

/* Checklists. */
.legal-content .occ-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; margin: 18px 0; }
.legal-content .occ-checklist li {
  margin: 0; padding: 12px 14px 12px 44px; background: var(--bg-1); border: 1px solid var(--line);
}
.legal-content .occ-checklist li::before {
  content: ""; top: 14px; left: 14px; width: 16px; height: 16px;
  border: 2px solid var(--blue-glow); background: transparent;
}

/* Ideas guide: jump list and one article per idea. */
.legal-content .occ-toc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 24px; margin: 14px 0 0; counter-reset: occ-toc; }
.legal-content .occ-toc li { margin: 0; padding-left: 34px; counter-increment: occ-toc; }
.legal-content .occ-toc li::before {
  content: counter(occ-toc, decimal-leading-zero); color: var(--red-glow);
  font-family: 'JetBrains Mono', monospace; font-size: 13px; top: 2px;
}
.occ-ideas { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 20px; counter-reset: occ-idea; }
.legal-content .occ-ideas > li { margin: 0; padding: 0; counter-increment: occ-idea; }
.legal-content .occ-ideas > li::before { content: none; }
.occ-idea {
  display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 24px; align-items: start;
  padding: 22px; background: linear-gradient(180deg, var(--bg-2), var(--bg-1));
  border: 1px solid var(--line-bright); border-left: 3px solid var(--blue);
  scroll-margin-top: 110px;
}
.occ-idea .lp-figure { margin: 0; }
.occ-idea img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.legal-content .occ-idea h3 {
  font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 22px; letter-spacing: 0.05em;
  text-transform: uppercase; color: var(--ink); margin-bottom: 10px;
}
.legal-content .occ-idea h3::before {
  content: "IDEA " counter(occ-idea, decimal-leading-zero); display: block; margin-bottom: 4px;
  font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.18em; color: var(--red-glow);
}
.legal-content .occ-idea p { font-size: 15px; line-height: 1.7; }
.occ-idea-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; margin: 14px 0; }
.occ-idea-facts > div { padding: 10px 12px; border: 1px solid var(--line); background: rgba(5,7,13,0.45); }
.occ-idea-facts dt {
  font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--blue-glow); margin-bottom: 4px;
}
.occ-idea-facts dd { margin: 0; color: var(--ink-dim); font-size: 14px; line-height: 1.55; }
.legal-content .occ-idea-link { font-weight: 600; letter-spacing: 0.04em; }
.occ-figcap { margin-top: 6px; color: var(--ink-mute); font-size: 13px; line-height: 1.5; }

/* Homepage-style "next step" links between the three pages. */
.occ-next { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 18px 0 0; list-style: none; padding: 0; }
.legal-content .occ-next > li { margin: 0; padding: 18px 20px; background: var(--bg-1); border: 1px solid var(--line); border-top: 3px solid var(--red); }
.legal-content .occ-next > li::before { content: none; }
.legal-content .occ-next h3 { font-family: 'Oswald', sans-serif; font-size: 18px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink); margin-bottom: 6px; }
.legal-content .occ-next p { font-size: 15px; margin-bottom: 8px; }

@media (max-width: 900px) {
  .occ-idea { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .legal-content .occ-checklist,
  .legal-content .occ-toc,
  .occ-idea-facts,
  .occ-next { grid-template-columns: minmax(0, 1fr); }
  .occ-idea { padding: 16px 14px; }
}
